【发布时间】:2018-05-07 13:37:30
【问题描述】:
我在 python 中解压 bz2 文件时遇到了一些问题。 我在 Windows 7 和红帽中遇到了同样的问题。两者都运行 Python 2.7 Anaconda 发行版。
python -V
Python 2.7.14 :: Anaconda custom (64-bit)
C:\Users\XXXXX>python -V
Python 2.7.14 :: Anaconda, Inc.
当我读取一个 bz2 文件时,我只得到文件的前 900kBytes:
sftp = client.open_sftp()
with sftp.file(path, 'rb') as f:
if ".bz2" in path:
u = f.read()
client.close()
client.open_sftp()
s = bz2.decompress(u).split("\n")
stdin, stdout, stderr = client.exec_command('bzcat %s' % path)
s2 = stdout.readlines()
client.close()
bz2.decompress 只给我前 900000 个字节。 s2 几乎总是大于 s。
无论我选择 Read hat 还是 Windows,都是如此。
有人知道吗?
谢谢
【问题讨论】:
-
你可以试试最新的python,比如3.6
-
谢谢,这是一个庞大的项目,我现在无法更改python版本。
-
你检查数据了吗?至少是正确的吗? (我的意思是数据的开头)
-
是的,bzcat 查询工作得非常好......
-
您可以在一个小示例中尝试使用最新版本,就像您展示的那样。其他解决方法是像您正在做的那样使用
bzcat。
标签: python compression bz2