Python Glossary English

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

bz2.compress()

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

Сжимает байты алгоритмом bzip2 за один вызов и возвращает сжатые байты. Для данных, целиком помещающихся в память.

Синтаксис

data = bz2.compress(data, compresslevel=9)

Принимает только bytes-подобные объекты: строку сначала кодируют, иначе TypeError. На маленьких данных результат бывает длиннее исходника — у формата есть заголовок. bzip2 жмёт текст плотнее zlib, но заметно медленнее; размер результата зависит от версии библиотеки, так что сравнивать сжатые байты в тестах нельзя — проверяют круговое сжатие-распаковку.

Примеры

import bz2
text = 'повтор ' * 1000
packed = bz2.compress(text.encode('utf-8'))
print(len(packed) < len(text))  # → True
print(bz2.decompress(packed).decode('utf-8') == text)  # → True
try:
    bz2.compress('строка')
except TypeError:
    print('нужны bytes')  # → нужны bytes

См. также

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

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