2015-09-23 69 views
0

我使用python來重寫幾百MB的文件。它非常快。我的Mac內存是16 GB 1600 MHz DDR3,處理器是2.5 GHz Intel Core i7。如何在python中替換大數據後釋放內存?

但是,這是問題所在。當我想重寫另一個文件。突然間,我甚至無法流利地打開擁有幾百MB數據的文件。處理過程非常緩慢。

是不是因爲我沒有發佈內存?爲什麼我的Mac變得如此緩慢,即使在我重寫了一些文件之後打開一個文件?

僅供參考,我用textmate編寫python。我對Python非常陌生。

+1

哪裏碼? –

+0

你在寫完文件後關閉了這些文件嗎? – DJanssens

+0

對不起,我的水晶球已經不能修復了...但是如果你發佈你的代碼,我們可能有機會發現問題。 –

回答

0

Python內置了垃圾回收器,可以自動釋放您不再需要的變量所使用的內存。所以,應該不是是內存問題。

但是,如果你沒有關閉這些文件,它們仍然是打開的,它們的一些內容在內存中(Python解釋器認爲你會使用它們)。

首先,檢查是否你正確地關閉您的文件

f=open("file.txt") 
a=f.read() 
f.close() 

甚至更​​好

with open("file.txt") as input: 
    data=input.read() 

這裏,文件的自動關閉。

如果你的一些變量變得非常大,你可以手動刪除它:del data

+0

我甚至重新啓動了我的Mac,但它仍然非常緩慢。昨晚我花了整整一晚的時間來重寫數據。現在我試了你的代碼,沒有結果。它似乎恢復了 –