zstd compressobj() не работает в python 0.8.1?

Все еще очень новый, чтобы использовать этот модуль Python, ZSTD 0.8.1. Я сделал тестовый прогон на следующем,

import zstd

cctx = zstd.ZstdCompressor()
zstd_data = cctx.compress(b'aaaaa')
len(zstd_data)
Out[34]: 14  #this is my output

Однако когда я это сделал,

cobj = cctx.compressobj()
zstd_data = cobj.compress(b'aaaaa')
len(zstd_data)
Out[39]: 0  #why the length is 0?

В чем мои ошибки?

1 ответ

Я знаю, что это было давно, но решил, что отвечу за всех, кто видит эту страницу в Google.

Похоже, вы используете python-zstandard библиотека ( https://github.com/indygreg/python-zstandard/issues). Важно отметить, что в примерах в последней строке демонстрации объекта ZstdCompressor используется zstd_data = cobj.flush(), После того, как вы добавите эту строку, она должна работать.

Или, если вы предпочитаете простой API:

cctx = zstd.ZstdCompressor()
compressed = cctx.compress(b'data to compress')

Ваш второй пример не включал flush() шаг, который требуется для compressobj()

Другие вопросы по тегам