如何在内存中打开和读取LZMA文件

Tot*_*ats 6 python csv compression file-io

我有一个巨大的文件,我们称之为one-csv-file.xz.它是一个XZ压缩的CSV文件.

如何在不先将文件解压缩到磁盘的情况下打开并解析文件?如果文件是100 GB,该怎么办?当然,Python无法一次性将所有这些内容读入内存.它会翻页或耗尽内存吗?

MRo*_*lin 5

你可以遍历一个LZMAFile对象

import lzma  # python 3, try lzmaffi in python 2
with open('one-csv-file.xz') as compressed:
    with lzma.LZMAFile(compressed) as uncompressed:
        for line in uncompressed:
            do_stuff_with(line)
Run Code Online (Sandbox Code Playgroud)

  • 参见 [这里](/sf/ask/3454366401/) 来处理 ASCII 以外的文本编码。 (2认同)

Mar*_*ler 3

您可以逐步解压。请参阅使用 LZMA 算法进行压缩。您创建一个LZMADecompressor对象,然后使用该decompress方法处理连续的压缩数据块来获取连续的未压缩数据块。