python压缩和解压缩模块之zlib 由于早期的zlib和Python之间不兼容,故推荐1.1.4以后的版本。导入zlib后可以查看版本号 1 2 3 4 5 import zlib zlib.ZLIB_VERSION 1.2.11 zlib.ZLIB_RUNTIME_VERSION 1.2.11 zlib中封装
python压缩和解压缩模块之zlib由于早期的zlib和Python之间不兼容,故推荐1.1.4以后的版本。导入zlib后可以查看版本号
zlib中封装了两对压缩和解压的函数
其中compress和decompress比较简单,二者声明为
即分别对data进行压缩和解压。 其中level为整数,用于指定压缩等级,决定压缩后文件的大小,取值为-1到9。 zlib中内置了四个常量,用以表示四种情况。
解压函数中的wbits控制历史缓冲区的大小(或称“窗口大小”)以及所期望的头部和尾部格式。 默认为MAX_WBITS,其取值范围和含义如下
bufsize是表示缓冲区初始大小,默认为DEF_MEM_LEVEL,由于在解压过程中会自动调节,故不必完全精确。 例如:
其中level为压缩级别,和前文一样取值为 -1 到 9;method 表示压缩算法,现在只支持 DEFLATED;memLevel指定内部压缩操作时所占用内存大小。参数取 1 到 9,默认DEF_MEM_LEVEL,取值越大越占内存,但速度更快。 wbits 和decompress中相似,但取值范围更少,默认是15(MAX_WBITS)。 参数范围如下:
除了压缩和解压缩,zlib还提供了两个数据校验的函数,
二者均输入数据和校验起始值,校验起始值value默认为1。这两个函数仅为验证数据的正确性,均无加密强度,不适合做密码。
python中zlib库用法zlib主要用于压缩与解压缩
示例代码:
运行结果: 示例代码2:
运行结果: 注意: compressobj返回一个压缩对象,用来压缩不能一下子读入内存的数据流。 level 从9到-1表示压缩等级,其中1最快但压缩度最小,9最慢但压缩度最大,0不压缩,默认是-1大约相当于与等级6,是一个压缩速度和压缩度适中的level。 |
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27