Модуль gzip
предоставляет простой интерфейс для сжатия и распаковки файлов, как это делают программы GNU gzip
и gunzip
.
Сжатие потока данных обеспечивается модулем zlib
.
Модуль gzip
предоставляет класс gzip.GzipFile()
, а также удобные функции gzip.open()
, gzip.compress()
и gzip.decompress()
. Класс gzip.GzipFile()
читает и записывает файлы формата gzip
, автоматически сжимая или распаковывая данные, чтобы они выглядели как обычный файловый объект.
Обратите внимание, что дополнительные форматы файлов, которые могут быть распакованы программами gzip
и gunzip
, например созданные с помощью команды bash compress
и pack
, этим модулем не поддерживаются.
Пример того, как читать сжатый GZIP файл:
import gzip with gzip.open('/home/joe/file.txt.gz', 'rb') as f: file_content = f.read()
Пример того, как создать сжатый файл GZIP:
import gzip content = b"Lots of content here" with gzip.open('/home/joe/file.txt.gz', 'wb') as f: f.write(content)
Пример того, как GZIP сжимает существующий файл:
import gzip import shutil with open('/home/joe/file.txt', 'rb') as f_in: with gzip.open('/home/joe/file.txt.gz', 'wb') as f_out: shutil.copyfileobj(f_in, f_out)
Пример того, как GZIP сжимает двоичную строку:
import gzip s_in = b"Lots of content here" s_out = gzip.compress(s_in)