Python: невозможно распаковать файл, созданный с помощью gzip - PullRequest
0 голосов
/ 02 июля 2018

Я изучаю параметры сжатия файлов, и меня смущает поведение модуля gzip в Python. Я могу написать файл в сжатом виде, как это:

with gzip.open('test.txt.gz', 'wb') as out:
 for i in range(100):
  out.write(bytes(i))

Но если я тогда выполню gunzip test.txt.gz, то вывод (test.txt) все еще будет двоичным. Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Хотя код, который вы опубликовали для 2.7, работает нормально, простой способ исправить это для 3.X:

import gzip

with gzip.open('test.txt.gz', 'wb') as out:
 for i in range(100):
  out.write(str(i).encode("utf-8"))
0 голосов
/ 02 июля 2018

Ах, это правильно работает в Python 2.7:

import gzip

with gzip.open('test.txt.gz', 'wb') as out:
 for i in range(100):
  out.write(bytes(i))

В Python 3 мы должны сделать:

import io, gzip

with gzip.open('test.txt.gz', 'wb') as output:
  with io.TextIOWrapper(output, encoding='utf-8') as writer:
    for i in range(100):
      writer.write(str(i))
...