0

我在 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,这都是事实。

有人有线索吗 ?

谢谢

4

1 回答 1

0

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

另见: https ://docs.python.org/2/library/bz2.html#bz2.BZ2File

于 2019-03-28T15:24:07.453 回答