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?

我的错误是什么?

4

1 回答 1

2

我知道这已经有一段时间了,但我想我会为在 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()

于 2018-10-15T02:58:55.170 回答