2011-03-19 73 views

回答

23

這裏close()發生在file對象從內存中釋放時,作爲其刪除邏輯的一部分。因爲其他虛擬機上的現代Pythons(如Java和.NET)無法控制何時從內存中釋放對象,所以它不再被認爲是open()的好Python,沒有close()。今天的建議是使用一個with聲明,其中明確請求close()時,會退出塊:

with open('myfile') as f: 
    # use the file 
# when you get back out to this level of code, the file is closed 

如果你並不需要一個名字f的文件,那麼你可以從聲明中省略as條款:

with open('myfile'): 
    # use the file 
# when you get back out to this level of code, the file is closed 
+0

對我來說確定很好的答案。 – philnext 2011-03-19 16:15:06

+0

是否可以內聯或沒有臨時'f'? – 2014-10-10 16:17:44

+0

是的,我已經補充了這個問題,以顯示如何不爲該文件創建一個名稱「f」。 – 2014-10-10 17:25:48