2013-06-20 70 views
5

我有一個線程正在讀取一個帶有zipfile.ZipFile().read()的zip文件,其中出現內存錯誤。讀取python中的zip文件時發生內存錯誤

我知道read()將整個文件加載到內存中。解壓後的文件大小超過100MB。我也嘗試過zipfile.ZipFile().open().readlines(),但這需要太多時間。

有沒有什麼辦法可以讓我快速讀取文件而不會出現內存錯誤?

+0

'readlines方法()'沒有'sizehint'參數也將整個文件讀入內存,並建立一個行列表。所以它不會減少內存需求,而是稍微增加它們。見Aya的答案。 – msw

回答

5

假設你想讀一個壓縮的文本文件,你可以把通過ZipFile.open()作爲一個迭代器返回的類文件對象,並對其進行處理行由行...

from zipfile import ZipFile 

zip = ZipFile('myzip.zip') 
stream = zip.open('myfile.txt') 
for line in stream: 
    do_something_with(line) 
相關問題