Сообщить об ошибке.

Функция compress() модуля zlib в Python

Сжать данные в буфер библиотекой zlib

Синтаксис:

import zlib

zlib.compress(data, level=-1)

Параметры:

  • data - bytes, сжимаемые данные,
  • level - int, уровень сжатия.

Возвращаемое значение:

Описание:

Функция compress() модуля zlib сжимает данные data представленные в байтах, возвращая объект байтов, содержащий сжатые данные.

Уровень level - целое число от 0 до 9 или -1, управляющее уровнем сжатия.

  • 1 (Z_BEST_SPEED) является самым быстрым и производит наименьшее сжатие,
  • 9 (Z_BEST_COMPRESSION) является самым медленным и производит максимальное сжатие.
  • 0 (Z_NO_COMPRESSION) не производит сжатие.
  • -1 (Z_DEFAULT_COMPRESSION) значение по умолчанию.

Z_DEFAULT_COMPRESSION представляет компромисс по умолчанию между скоростью и сжатием, в настоящее время эквивалентен уровню 6.

Вызывает исключение zlib.error, если возникает какая-либо ошибка.

Примеры использования:

>>> import zlib
# создадим массив данных
>>> text = 'Привет docs-python.ru '
>>> data = []
>>> for _ in range(10):
...     data.append(text * 20)
...
# преобразование текста в байты
>>> byte_data = '\n\n'.join(data).encode('utf-8')
# сжимаем данные
>>> compress = zlib.compress(byte_data, level=-1)
# длинна не сжатых данных
>>> len(byte_data)
# 4418

# длинна сжатых данных
>>> len(compress)
# 85

# найдем процент сжатия
>>> (1 - len(compress) / len(byte_data)) * 100
# 98.07605251244908