with语句说白了就是简洁版的try…finally语句,它是一种上下文管理协议,目的在于从流程图中把 try, except 和finally 关键字和资源分配释放相关代码统统去掉,简化try…except…finlally的处理流程。
如果不使用with语句的文件操作是这样的:
file = open("demo.py")
data = file.read()
file.close()
这里有两个潜在的问题:一是可能忘记关闭文件;二是文件读取时数据发生异常,而没有进行任何处理。
异常处理后的代码如下: