我有一个巨大的文件,我们称之为one-csv-file.xz。它是一个 XZ 压缩的 CSV 文件。
如何在不先将文件解压缩到磁盘的情况下打开和解析文件?例如,如果文件大小为 100 GB,该怎么办?当然,Python 不能一次将所有这些读入内存。它会分页还是内存不足?
我有一个巨大的文件,我们称之为one-csv-file.xz。它是一个 XZ 压缩的 CSV 文件。
如何在不先将文件解压缩到磁盘的情况下打开和解析文件?例如,如果文件大小为 100 GB,该怎么办?当然,Python 不能一次将所有这些读入内存。它会分页还是内存不足?
你可以遍历一个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)
您可以逐步解压缩。请参阅使用 LZMA 算法进行压缩。您创建一个LZMADecompressor
对象,然后使用该decompress
方法处理连续的压缩数据块来获取连续的未压缩数据块。