2013-04-18 68 views
0

我已经看到了在Python文件的工作最好的做法是使用with块:没有关闭Python中的打开文件有什么后果?

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) 

现在很明显,如果我写真正的软件™我应该使用前者,但我想知道是什么后者有(如果有的话)的后果?

回答

5

关于CPython:无;文件将在参考计数降至0时关闭,.read().write()调用立即返回。

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

相关问题