zlib – zlib 压缩与解压缩

This module implements a subset of the corresponding CPython module, as described below. For more information, refer to the original CPython documentation: zlib

该模块允许使用 DEFLATE 算法 (通常用于 zlib 库和 gzip 压缩器)对二进制数据进行压缩和解压缩。

备注

优先使用 deflate.DeflateIO,而不是本模块中的函数,因为它提供了对压缩和解压缩的流接口,当处理读取或写入压缩数据到文件、套接字或流时更方便且更节省内存。

可用性:

函数

zlib.decompress(data, wbits=15, /)

data 解压缩为一个字节对象。

wbits 参数的工作方式与 zlib.compress() 相同,但还支持以下额外的有效值:

  • 0: 从 zlib 头自动确定窗口大小(data 必须采用 zlib 格式)。

  • 3547: 自动检测 zlib 或 gzip 格式。

有关 wbits 参数的更多信息,请参阅 zlib.compress()CPython 文档。与 zlib.compress() 类似,MicroPython 也支持比 CPython 更小的窗口大小。在 deflate 模块文档中查看更多 MicroPython 特定的详细信息

如果要解压缩的数据需要更大的窗口大小,则在解压期间会失败。

zlib.compress(data, wbits=15, /)

data 压缩为一个字节对象。

wbits 允许您配置 DEFLATE 字典窗口大小和输出格式。窗口大小允许您在内存使用和压缩级别之间进行权衡。较大的窗口大小将允许压缩器引用输入中更远处的片段。输出格式包括 “raw” DEFLATE(无头/尾),zlib 和 gzip,其中后两者包括头和校验和。

wbits 的绝对值的低四位设置 DEFLATE 字典窗口大小的以2为基数的对数。因此,例如, wbits=10wbits=-10wbits=26 都将窗口大小设置为 1024 字节。有效的窗口大小为 515 (对应于 32 到 32k 字节)。

wbits 的负值介于 -5-15 之间对应于 “raw” 输出模式,介于 515 之间的正值对应于 zlib 输出模式,介于 2131 之间的正值对应于 gzip 输出模式。

有关 wbits 参数的更多信息,请参阅 CPython 文档。注意,MicroPython 允许更小的窗口大小,这在内存受限的情况下非常有用,同时仍然可以实现合理的压缩水平。这也加速了压缩器。在 deflate 模块文档中查看更多 MicroPython 特定的详细信息