Python Glossary English

все Python 3zlibфункция

zlib.compress()

сжатие

Сжимает байты алгоритмом DEFLATE целиком в памяти и возвращает bytes в формате zlib.

Синтаксис

zlib.compress(data, /, level=-1, wbits=15)

Принимает только bytes-подобные объекты: строку сначала кодируют через encode(), иначе TypeError. На коротких данных результат длиннее исходного — заголовок и контрольная сумма занимают 6 байт. Формат zlib — не gzip: такой поток не откроет gzip.open и программа gunzip. level от 0 (без сжатия) до 9; по умолчанию -1 (это 6) — разумный компромисс скорости и размера.

Примеры

import zlib
text = 'привет, мир ' * 100
packed = zlib.compress(text.encode('utf-8'))
print(len(packed) < len(text.encode('utf-8')))  # → True
print(zlib.decompress(packed).decode('utf-8') == text)  # → True
print(len(zlib.compress(b'a')))  # → 9 — короткие данные растут
import zlib
try:
    zlib.compress('строка')
except TypeError as e:
    print(type(e).__name__)  # → TypeError — нужны bytes

См. также

Частые ошибки

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