python中with 语句作为try/finally 编码范式的一种替代, 适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的”清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等
1. 使用with打开文件
你应该见过下面这种打开文件的方式
with open('data', 'r', encoding='utf-8') as f:
data = f.readlines()
上面的写法,与下面的写法在最终效果上是一致的
f = open('data', 'r', encoding='utf-8')
try:
data = f.readlines()
except:
pass
finally:
f.close()
对比两段代码不难发现,使用with语句时,代码更加简洁,而且不用主动关闭文件,在with语句体退出时,会自动关闭文件,即便with语句体中发生了异常。
2. 上下文管理器和with 语句有关的概念
想要理解with语句,就必须先理