繁体   English   中英

在python中逐行迭代大型.xz文件

[英]Iterate a large .xz file line by line in python

我有一个很大的.xz文件(几GB)。 它充满了纯文本。 我想处理文本以创建自定义数据集。 我想逐行阅读,因为它太大了。 任何人都有一个想法怎么做?

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

编辑:我收到此错误'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)

几周前,我面临着同样的问题。 此代码段对我有用:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM