12.1. zlib —压缩与 gzip 兼容

对于需要数据压缩的应用程序,此模块中的Function允许使用 zlib 库进行压缩和解压缩。 zlib 库在http://www.zlib.net拥有自己的主页。 Python 模块和低于 1.1.3 的 zlib 库版本之间存在已知的不兼容性; 1.1.3 存在安全漏洞,因此我们建议使用 1.1.4 或更高版本。

zlib 的Function有很多选项,通常需要按特定 Sequences 使用。本文档并不试图涵盖所有排列;有关 Authority 信息,请查阅http://www.zlib.net/manual.html的 zlib 手册。

有关读取和写入.gz文件的信息,请参见gzip模块。

该模块中可用的异常和Function是:

此函数始终返回整数对象。

Note

要在所有 Python 版本和平台上生成相同的数值,请使用 adler32(data)和 0xffffffff。如果仅使用打包二进制格式的校验和,则没有必要,因为返回值是正确的 32 位二进制表示形式(与符号无关)。

在 2.6 版中更改:无论平台如何,返回值都在[-2 31,2 31-1]范围内。在旧版本中,该值在某些平台上签名,而在另一些平台上未签名。

在版本 3.0 中更改:无论平台如何,返回值都是无符号的,且范围为[0,2 ** 32-1]。

此函数始终返回整数对象。

Note

要在所有 Python 版本和平台上生成相同的数值,请使用 crc32(data)&0xffffffff。如果仅使用打包二进制格式的校验和,则没有必要,因为返回值是正确的 32 位二进制表示形式(与符号无关)。

在 2.6 版中更改:无论平台如何,返回值都在[-2 31,2 31-1]范围内。在旧版本中,该值将在某些平台上签名,而在另一些平台上未签名。

在版本 3.0 中更改:无论平台如何,返回值都是无符号的,且范围为[0,2 ** 32-1]。

在对流进行解压缩时,窗口大小不得小于最初用于压缩流的大小。使用太小的值可能会导致error异常。 * wbits *的默认值为 15,它对应于最大的窗口大小,并且需要包含 zlibHeaders 和尾标。

压缩对象支持以下方法:

2.5 版的新Function。

解压缩对象支持以下方法和两个属性:

确定压缩数据字符串结束位置的唯一方法是实际对其进行解压缩。这意味着,当压缩数据包含在较大文件的一部分中时,您只能pass读取数据并将其后跟一些非空字符串的数据送入解压缩对象的decompress()方法中找到它的末尾,直到unused_data属性不再为空为止串。

如果可选参数* max_length 不为零,则返回值将不超过 max_length 。这可能意味着并非所有压缩的 Importing 都可以处理。未使用的数据将存储在属性unconsumed_tail中。如果要 continue 减压,则必须将此字符串传递给对decompress()的后续调用。如果未提供 max_length *,则将整个 Importing 解压缩,并且unconsumed_tail是空字符串。

可选参数* length *设置输出缓冲区的初始大小。

2.5 版的新Function。

See also

首页