Python Glossary English

Python 3.2+gzipфункция

gzip.compress()

сжатие в памяти

Сжимает байты в формат gzip целиком в памяти; результат читается gzip.open и программой gunzip.

Синтаксис

gzip.compress(data, compresslevel=6, *, mtime=0)

В заголовок gzip пишется время mtime: до Python 3.14 по умолчанию это текущее время, и одинаковые данные, сжатые в разные секунды, дают разные байты — ломаются хеши и воспроизводимые сборки. С 3.14 умолчание стало mtime=0; передавайте mtime=0 явно, если код должен работать и на старых версиях. Как и zlib.compress, принимает только bytes. С 3.15 уровень сжатия по умолчанию — 6, а не 9: сжатие быстрее, архив чуть больше; нужен прежний размер — передайте compresslevel=9 явно.

Примеры

import gzip
a = gzip.compress(b'report', mtime=0)
b = gzip.compress(b'report', mtime=0)
print(a == b)  # → True — mtime=0 даёт одинаковые байты
print(a[:2])  # → b'\x1f\x8b'
print(gzip.decompress(a))  # → b'report'

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности