在Python 3上使用with打开文件有什么好处?

  • 本文关键字:文件 Python with python-3.x python
  • 更新时间 :
  • 英文 :


使用

的真正性能优势是什么?
with open(__file__, 'r') as f:

而不是使用:

open(__file__,'r')

在Python 3写入和读取文件?

使用with意味着文件将在您离开块时立即关闭。这是有益的,因为关闭文件很容易被忘记,并占用您不再需要的资源。

with语句所做的基本上是利用对象上的两个新的魔法关键字:__enter____exit__来实现自动清除(c++析构函数,.net IDisposable等)。因此,实际情况如下:

file = open(__file__, 'r')
try:
  # your code here
finally: file.close()

请随意阅读pep-0343

中有关实际实现的更多信息。

要回答您关于什么性能优势的问题,从严格的CPU/内存角度来看没有。您的代码不会执行得更好,但它会更健壮,类型更少,并且应该更清晰,因此更容易维护。所以从某种意义上说,性能的提高将在以后的维护中以工时来衡量,这是我们都应该知道的软件的真正成本,所以它将具有很大的"性能优势"。div;)

使用经典语法,您必须负责关闭文件,因此即使在文件处理期间发生异常。

另一方面,使用with语句,您可以编写更小的代码,更易于阅读,python在您离开with块后负责关闭文件。

最新更新