在python中逐行迭代一个大的.xz文件



我有一个大的.xz文件(几千兆字节(。它充满了纯文本。我想处理文本以创建自定义数据集。我想一行一行地阅读它,因为它太大了。有人知道怎么做吗?

我已经试过了如何在内存中打开和读取LZMA文件,但它不起作用。

编辑:我收到此错误"ASCII"编解码器无法解码位置 0 中的字节0xfd:序号不在范围内(128(

在链接for line in uncompressed:的行上

编辑2:我的代码(使用python 3.5(

with open(filename) as compressed:
    with lzma.LZMAFile(compressed) as uncompressed:
        for line in uncompressed:
            print(line)
几周

前我遇到了同样的问题。这个片段对我有用:

import lzma
with lzma.open('filename.xz', mode='rt') as file:
    for line in file:
       print(line)

这假设压缩文件中的文本数据是用 utf-8 编码的(我的数据就是这种情况(。函数lzma.open()中有一个encoding参数,如果需要,它允许您设置另一种编码

编辑(在您自己编辑后(:尝试强制encoding='utf-8' lmza.open()

相关内容

最新更新