蟒蛇模块
zopfli的Python项目详细描述
Pyzopfli
的cPython绑定 zopfli
用法
pyzopfli是zopfli的ZlibCompress方法的直接包装器
from zopfli.zlib import compress from zlib import decompress s = 'Hello World' print decompress(compress(s))
pyzopfli也包装gzicompress,但API点不尝试 模拟gzip模块。
from zopfli.gzip import compress from StringIO import StringIO from gzip import GzipFile print GzipFile(fileobj=StringIO(compress("Hello World!"))).read()
zopfli.zlib.compress和zopfli.gzip.compress都支持以下内容 关键字参数所有值都应该是整数;布尔参数是 按预期处理,0和>;0为false和true。
- verbose将zopfli调试数据转储到stderr
- {EM1}$UnTrime:EEE>重返向前和向后的最大次数 通过优化LZ77压缩成本。好值:10,小值15 文件,对于大小超过几MB的文件为5,否则速度太慢
- blockspliting如果为true,则将数据拆分为多个deflate块 块边界的最佳选择分块给出 更好的压缩。默认值:true(1)。
- blocksplittinglast如果为真,则选择最佳的块分割点 只有在做了迭代lz77压缩之后。如果为假,则选择 块首先分裂点,然后对每个点进行迭代lz77 个别街区。根据文件,第一个或最后一个给出 最好的压缩。默认值:false(0)
- {EM1}$BuffStultIdTime:EEM >最大块的分割量(0) 无限制,但这可能会产生极端的结果,损害 一些文件)。默认值:15。
待办事项
- 停止将整个文件读入内存并支持流媒体
- monkey补丁zlib和gzip,因此具有过紧绑定的代码可以 很容易修改为使用zopfli。