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Сообщить о неточности