关于python:with as 语句和=语句

With-As statement versus “=” Assignment?

本问题已经有最佳答案,请猛点这里访问。

使用的区别是:

1
iFile = open("filename.txt",'r')

对战

1
with open("filename.txt",'r') as iFile:

一个更有效还是允许更多的人拥有更多的访问方法?在我看来,WITHAS语句是临时的,在以下块结束后不引用。


第一个示例只打开文件并将文件对象分配给变量。您将需要自己管理关闭文件(理想情况下,在一个try finally块中,这样您就不会泄漏该文件)

第二个代码段使用上下文管理器在退出WITH块时自动关闭文件,包括返回或引发异常