Python基础知识-优雅的with as语句

当使用完一个资源后,需要手动的关闭它,比如操作文件、建立数据库连接等。但是在使用资源的过程中,如果遇到异常,很可能错误被直接抛出,导致来不及关闭资源。

try:
    file = open("test.txt", "a+")
    file.write("hello,python\n")
finally:
    file.close()

Python提供了with语句语法,来构建对资源创建与释放的过程,with是一个新关键词,并且总是伴随着上下文管理器出现,功能同上面的"try-finally"一样,代码更加简洁

with open("test.txt", "a+") as file:
    file.write("hello,with as")

with语句后面跟着open()方法,如果它有返回值的话,可以使用as’语句将其赋值给file,"as"是另一个关键词,指代open函数的返回值。在with语句块退出时,close()方法自动调用,即使write()出现异常,也能确保close()方法被调用。

#with...as...语句结束时,自动调用f.close()
#a表示:在文件末尾追加
def write_txt_file(path, txt):  # 写文件
    with open(path, 'a', encoding='gbk') as f:
        return f.write(txt)
#每次运行程序前,需要删除上一次的文件
#默认字符编码为GBK
def read_txt_file(path):
    with open(path, 'r', encoding='gbk') as f:
        return f.read()
发布了395 篇原创文章 · 获赞 130 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/qq_40507857/article/details/93602140