Python 2.7 bz2.decompress проблема (не может прочитать весь файл) - PullRequest
0 голосов
/ 07 мая 2018

У меня возникают некоторые проблемы при распаковке файлов bz2 в python. У меня та же проблема в 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, я получаю только первые 900 КБ файлов:

                    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 .

Это верно, независимо от того, какое окружение я выберу, Читать шляпу или Windows.

У кого-нибудь есть подсказка?

Спасибо

1 Ответ

0 голосов
/ 28 марта 2019

Возможно, вы также захотите проверить, является ли ваш bzip-файл многопотоковым файлом, поскольку модуль bz2 в python2 не поддерживает декодирование многопотоковых bzip-файлов (он декодирует только первый поток, обрезая все остальные потоки).

Смотри также: https://docs.python.org/2/library/bz2.html#bz2.BZ2File

...