5
我有一個線程正在讀取一個帶有zipfile.ZipFile().read()
的zip文件,其中出現內存錯誤。讀取python中的zip文件時發生內存錯誤
我知道read()
將整個文件加載到內存中。解壓後的文件大小超過100MB。我也嘗試過zipfile.ZipFile().open().readlines()
,但這需要太多時間。
有沒有什麼辦法可以讓我快速讀取文件而不會出現內存錯誤?
我有一個線程正在讀取一個帶有zipfile.ZipFile().read()
的zip文件,其中出現內存錯誤。讀取python中的zip文件時發生內存錯誤
我知道read()
將整個文件加載到內存中。解壓後的文件大小超過100MB。我也嘗試過zipfile.ZipFile().open().readlines()
,但這需要太多時間。
有沒有什麼辦法可以讓我快速讀取文件而不會出現內存錯誤?
假設你想讀一個壓縮的文本文件,你可以把通過ZipFile.open()
作爲一個迭代器返回的類文件對象,並對其進行處理行由行...
from zipfile import ZipFile
zip = ZipFile('myzip.zip')
stream = zip.open('myfile.txt')
for line in stream:
do_something_with(line)
'readlines方法()'沒有'sizehint'參數也將整個文件讀入內存,並建立一個行列表。所以它不會減少內存需求,而是稍微增加它們。見Aya的答案。 – msw