Python 2.7 bz2.decompress问题(无法读取整个文件)

时间:2018-05-07 13:37:31

标签: python compression bz2

我在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,我都会这样做。

有没有人有线索?

由于

1 个答案:

答案 0 :(得分:0)

您可能还想检查bzip文件是否为多流文件,因为python2的bz2模块不支持解码多流bzip文件(它将仅解码第一个流,将所有其他流都截断)。 / p>

另请参阅: https://docs.python.org/2/library/bz2.html#bz2.BZ2File