2013-04-18 112 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實現上,文件將保持打開狀態直到垃圾收集。

相關問題