我已经看到在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™,我应该使用前者,但我想知道后者有什么后果(如果有的话)?
答案 0 :(得分:6)
在CPython上:无;当引用计数降至0时,文件将被关闭,这是.read()
和.write()
调用返回时的立即。
在其他不使用引用计数的Python实现上,文件将保持打开状态,直到收集垃圾。