在Python 3中使用with打开文件有什么优点?
使用
with open(__file__, 'r') as f:
相比于使用:
open(__file__,'r')
在Python 3中进行文件的读写,实际的性能优势是什么呢?
4 个回答
2
关于你问的性能优势,从严格的CPU和内存的角度来看,其实没有什么优势。你的代码在运行速度上不会更快,但它会更稳健,输入的内容会更少,而且更容易理解,这样后续维护起来也会更简单。所以从某种意义上说,性能的提升体现在以后维护所节省的人力时间上,而这才是软件的真正成本,因此它会有很大的“性能优势”。 ;)
12
使用 with
的好处是,当你离开这个代码块时,文件会自动关闭。这非常有用,因为关闭文件这件事很容易被忘记,而打开的文件会占用你不再需要的资源。
9
“with”语句的主要作用是利用对象上的两个特殊关键词:__enter__
和 __exit__
,来实现自动清理(类似于C++中的析构函数,.NET中的IDisposable等)。简单来说,它的工作流程如下:
file = open(__file__, 'r')
try:
# your code here
finally: file.close()
如果你想了解更多关于实际实现的内容,可以去看看 pep-0343。