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()