Python 3.14+compression.zstdфункция
compression.zstd.compress()
сжатие в памяти
Сжимает байты алгоритмом Zstandard за один вызов и возвращает полный кадр zstd. Уровень от отрицательных (быстро) до 22 (плотно).
Синтаксис
compression.zstd.compress(data, level=None, options=None, zstd_dict=None)
level и options взаимоисключающие: передать оба — TypeError, уровень тогда задают через CompressionParameter.compression_level в options. Уровень вне допустимого диапазона даёт ValueError с названием диапазона, по умолчанию уровень 3. Отрицательные уровни — режим «быстрее любого gzip», а не ошибка. Вход — только bytes-подобный объект: строку сначала кодируют .encode().
Примеры
# Python 3.14+
from compression import zstd # → ? нужна сборка CPython с libzstd
data = 'строка лога\n'.encode() * 200
packed = zstd.compress(data, level=10)
print(len(packed) < len(data), packed[:4]) # → True b'(\xb5/\xfd' — магия кадра zstd
print(zstd.decompress(packed) == data) # → True
# Python 3.14+
from compression import zstd # → ? нужна сборка CPython с libzstd
try:
zstd.compress(b'x', level=3, options={zstd.CompressionParameter.checksum_flag: 1})
except TypeError as e:
print(e) # → Only one of level or options should be used.
try:
zstd.compress(b'x', level=100)
except ValueError as e:
print('ValueError') # → ValueError
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности