【发布时间】:2013-06-20 17:46:26
【问题描述】:
我有一个线程正在读取带有 zipfile.ZipFile().read() 的 zip 文件,其中出现内存错误。
我知道read() 会将整个文件加载到内存中。解压后文件大小超过100MB。我也试过zipfile.ZipFile().open().readlines(),但是太费时间了。
有什么方法可以快速读取文件而不会出现内存错误?
【问题讨论】:
-
readlines()没有sizehint参数也会将整个文件读入内存并构建行列表。所以它不会减少内存需求,而是稍微增加它们。请参阅 Aya 的答案。