【问题标题】:How to get zlib (or another library) to create Type 01 DEFLATE block如何让 zlib(或其他库)创建 Type 01 DEFLATE 块
【发布时间】:2023-04-15 21:06:01
【问题描述】:
我正在编写一个 DEFLATE 解压缩器(在 Python 中),并希望使用 Type 01 块对其进行测试(即使用 3.2.6. of RFC 1951 中的固定 Huffman 代码。
我知道我可以自己创建它们,但我想用其他代码创建的块来测试它,例如兹库。我怎样才能做到这一点?到目前为止,从我的测试来看,zlib 总是创建 Type 02 块(即动态 Huffman 代码)或 Type 00 块(未压缩)。
(这最终将用于解压缩)
【问题讨论】:
标签:
python
zip
zlib
deflate
【解决方案1】:
啊发现了如何:将strategy=zlib.Z_FIXED 传递给compressobj
import zlib
compressobj = zlib.compressobj(wbits=-zlib.MAX_WBITS, strategy=zlib.Z_FIXED)
compressed_stream = compressobj.compress(b'Some data') + compressobj.flush()