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