使用它的真正性能优势是什么?
with open(__file__, 'r') as f:
使用以下方式替代:
open(__file__,'r')
Python 3中如何同时进行文件的读写?
使用它的真正性能优势是什么?
with open(__file__, 'r') as f:
使用以下方式替代:
open(__file__,'r')
Python 3中如何同时进行文件的读写?
使用 with
的意思是当你离开该块时文件会被关闭。这样做有益处,因为关闭文件是容易被忘记的,同时也会占用不必要的资源。
with
了。 - unholysamplerwith
在 Python 2.6 中被引入,但在 Python 2.5 中作为 __future__
特性已经可用(例如 from __future__ import with_statement
)。 - jathanismwith
时,__exit__()
调用 close()
,因此您无需手动执行它。 - unholysamplerwith语句的基本作用是利用对象中的两个新魔术关键字:__enter__
和 __exit__
,实现自动清理(类似c++析构函数、.net IDisposable等)。因此,实际上会发生以下情况:
file = open(__file__, 'r')
try:
# your code here
finally: file.close()
欢迎详细阅读PEP-0343,了解实际实现的更多细节。
使用传统语法时,您必须注意关闭文件,即使在文件处理过程中发生异常。
在我看来,另一方面,使用with
语句,您可以编写更小、更易于阅读的代码,Python会在您离开with
块后自动关闭文件。
__name__
风格的标识符。这些名称旨在具有特殊的 "魔法 "含义。 - ulidtko