2

我已经看到在 Python 中处理文件的最佳实践是使用该with块:

with open('file', 'r') as fi:
 text = fi.read()

with open('file', 'w') as fi:
  fi.write(text)

这样,文件在您完成后会自动关闭。但我变得懒惰,在快速的一次性脚本中,我倾向于这样做:

text = open('file', 'r').read()
open('file', 'w').write(text)

现在显然,如果我正在编写 Real Software™,我应该使用前者,但我想知道后者有什么后果(如果有的话)?

4

1 回答 1

6

在 CPython 上:无;当文件的引用计数下降到 0 时,文件将被关闭,这是在.read()and.write()调用返回时立即关闭。

在其他不使用引用计数的 Python 实现中,该文件将保持打开状态,直到垃圾回收。

于 2013-04-18T11:29:31.693 回答