Python Glossary English

Python 3.14+compression.zstdпонятие

compression.zstd.ZstdCompressor

потоковое сжатие

Потоковый компрессор Zstandard: данные подаются частями методом compress(), а кадр завершается вызовом flush().

Синтаксис

comp = compression.zstd.ZstdCompressor(level=None, options=None, zstd_dict=None); comp.compress(data, mode=ZstdCompressor.CONTINUE); comp.flush()

compress() часто возвращает b'': данные копятся во внутреннем буфере, и без flush() на выходе окажется неполный кадр, который decompress отвергнет. Режим ZstdCompressor.FLUSH_FRAME завершает кадр сразу, и тот же объект продолжит следующий. Размер исходных данных потоковый компрессор не знает, поэтому в заголовке его нет — если он нужен, вызовите set_pledged_input_size(n) до первого compress().

Примеры

# Python 3.14+
from compression import zstd  # → ? нужна сборка CPython с libzstd
comp = zstd.ZstdCompressor()
print(comp.compress(b'abc'))  # → b'' — пока всё в буфере
out = comp.compress(b'def') + comp.flush()
print(zstd.decompress(out))  # → b'abcdef'
# Python 3.14+
from compression import zstd  # → ? нужна сборка CPython с libzstd
data = b'hello zstd ' * 100
comp = zstd.ZstdCompressor()
comp.set_pledged_input_size(len(data))
out = comp.compress(data) + comp.flush()
print(zstd.get_frame_info(out).decompressed_size)  # → 1100

См. также

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