在python

时间:2018-03-18 12:52:49

标签: python lzma xz

我有一个很大的.xz文件(几千兆字节)。它充满纯文本。我想处理文本以创建自定义数据集。我想逐行阅读,因为它太大了。任何人都知道如何做到这一点?

我已经尝试过了 How to open and read LZMA file in-memory但它不起作用。

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

来自链接

for line in uncompressed:

EDIT2:我的代码(使用python 3.5)

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

相关问题