我有一个巨大的文件,我们称之为 one-csv-file.xz 。它是一个XZ压缩的CSV文件。
如何在不先将文件解压缩到磁盘的情况下打开并解析文件?如果文件是100 GB,该怎么办?当然,Python无法一次性将所有这些内容读入内存。它会翻页或耗尽内存吗?
答案 0 :(得分:3)
您可以遍历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)
答案 1 :(得分:1)
您可以逐步解压缩。见Compression using the LZMA Algorithm。您创建一个LZMADecompressor
对象,然后使用decompress
方法和连续的压缩数据块来获取未压缩数据的连续块。