我在python中解压缩bz2文件时遇到了一些问题。 我在Windows 7和red hat中遇到了同样的问题。两者都运行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,我都会这样做。
有没有人有线索?
由于
答案 0 :(得分:0)
您可能还想检查bzip文件是否为多流文件,因为python2的bz2模块不支持解码多流bzip文件(它将仅解码第一个流,将所有其他流都截断)。 / p>
另请参阅: https://docs.python.org/2/library/bz2.html#bz2.BZ2File