zstd compressobj() 在 python 0.8.1 中不起作用?
Posted
技术标签:
【中文标题】zstd compressobj() 在 python 0.8.1 中不起作用?【英文标题】:zstd compressobj() not working in python 0.8.1? 【发布时间】:2018-02-27 07:10:04 【问题描述】:使用这个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()
。添加该行后,它应该可以工作。
或者,如果您更喜欢simple API:
cctx = zstd.ZstdCompressor()
compressed = cctx.compress(b'data to compress')
您的第二个示例不包括flush()
步骤,这是compressobj()
所必需的
【讨论】:
以上是关于zstd compressobj() 在 python 0.8.1 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章