【问题标题】:Memory error reading a zip file in python在 python 中读取 zip 文件时出现内存错误
【发布时间】:2013-06-20 17:46:26
【问题描述】:

我有一个线程正在读取带有 zipfile.ZipFile().read() 的 zip 文件,其中出现内存错误。

我知道read() 会将整个文件加载到内存中。解压后文件大小超过100MB。我也试过zipfile.ZipFile().open().readlines(),但是太费时间了。

有什么方法可以快速读取文件而不会出现内存错误?

【问题讨论】:

  • readlines() 没有 sizehint 参数也会将整个文件读入内存并构建行列表。所以它不会减少内存需求,而是稍微增加它们。请参阅 Aya 的答案。

标签: python file memory zip


【解决方案1】:

假设您正在尝试读取压缩文本文件,您可以将ZipFile.open() 返回的类文件对象视为迭代器,并逐行处理...

from zipfile import ZipFile

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2020-03-19
    • 2018-02-12
    • 1970-01-01
    • 2017-10-03
    相关资源
    最近更新 更多