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