简述with语句的用法以及底层实现了什么?

使用with语法更优雅,更敏捷。不仅可以避免读取文件时异常的发生而没有关闭问题的处理,而且代码更短一些。

#with的实现
with open(r'c:	est.txt', 'r') as f:
    data = f.read()
# 一般访问文件资源时我们会这样处理

f = open(
  'c:	est.txt', 'r')
data = f.read()

#以下的加强版本的写法:
f = open('c:	est.txt', 'r')
try:
    data = f.read()
except:
    pass
finally:
    f.close()

打开文件在进行读写的时候可能会出现一些异常状况,如果按照常规的f.open写法,我们需要try,except,finally,做异常判断,并且文件最终不管遇到什么情况,都要执行finally f.close()关闭文件,with方法帮我们实现了finally中f.close

原文地址:https://www.cnblogs.com/youhongliang/p/13068757.html