用于lzham编解码器的python 3包装器
pylzham的Python项目详细描述
派尔扎姆
pylzham是lzham压缩编解码器的python 3包装器
安装
要安装pylzham,只需使用以下命令
python -m pip install pylzham
^ {STR 1 } $Note :PyLZHAM使用C++扩展,这意味着Python需要编译器来构建这个模块
用法
压缩
您可以使用以下代码片段轻松压缩数据:
>>> import lzham
>>> lzham.compress(b'yourdatahere' * 100)
b'@\x0b\x9f\x85\x07\x96\xf7W&F\x17F\x16\x86P\x07&W\x98(C\xf4\x03\xf7\xf4\x02m\x98\xc0P\xeb\xf9$'
但是,如果需要压缩许多文件/数据,那么使用LZHAMCompressor
类可能是一个更好的主意。下面是一个简单的示例:
>>> from lzham import LZHAMCompressor
>>> compressor = LZHAMCompressor()
>>> compressor.compress(b'yourdatahere' * 100)
b'@\x0b\x9f\x85\x07\x96\xf7W&F\x17F\x16\x86P\x07&W\x98(C\xf4\x03\xf7\xf4\x02m\x98\xc0P\xeb\xf9$'
>>> compressor.compress(b'yourotherdata' * 100)
b'@\x07\xcd\xd9\x07\x96\xf7W&\xf7F\x86W&D\xc6\x17F\x17\x98(D\x03\xf7\xf4\x03\xf7\xf4\x01\x98\xc03i*k'
使用压缩选项
如果你想设置压缩选项,你应该使用压缩过滤器。筛选器支持以下选项(在字典中指定为表示筛选器的附加项):
dict_size_log2
level
table_update_rate
max_helper_threads
table_max_update_interval
table_update_interval_slow_rate
有关方法选项的详细信息,请查看there。
下面是一个将过滤器与lzham.compress
和LZHAMCompressor
一起使用的示例:
>>> filters = {'dict_size_log2': 18}
>>> lzham.compress(b'yourdata', filters)
>>> compressor = lzham.LZHAMCompressor(filters)
>>> compressor.compress(b'yourdata')
###减压 您可以使用以下代码片段轻松解压缩数据:
>>> import lzham
>>> lzham.decompress(b'D\xad\xc0\x00\x07FW7@\x07i1\x98\xc0f\xb1\x11\x81', 40)
b'testtesttesttesttesttesttesttesttesttest'
note:由于lzham没有官方头,因此必须将解压缩后的数据大小赋给lib(在我们的例子中是40
)。
但是,如果需要解压缩许多文件/数据,那么使用LZHAMDeompressor
类可能是一个更好的主意。下面是一个简单的示例:
>>> from lzham import LZHAMDecompressor
>>> decompressor = LZHAMDecompressor()
>>> decompressor.decompress(b'D\xad\xc0\x00\x07FW7@\x07i1\x98\xc0f\xb1\x11\x81', 40)
b'testtesttesttesttesttesttesttesttesttest'
>>> decompressor.decompress(b'D\xad\xc0\x00\x07FW7@\x07i1\x98\xc0f\xb1\x11\x81', 40)
b'testtesttesttesttesttesttesttesttesttest'
使用解压缩选项
如果你想设置解压选项,你应该使用解压过滤器。筛选器支持以下选项(在字典中指定为表示筛选器的附加项):
dict_size_log2
table_update_rate
table_max_update_interval
table_update_interval_slow_rate
compute_adler32_during_decomp
unbuffered_decompression
有关方法选项的详细信息,请查看there。
下面是一个将过滤器与lzham.decompress
和LZHAMDecompressor
一起使用的示例:
>>> filters = {'dict_size_log2': 18}
>>> lzham.decompress(b'D\xad\xc0\x00\x07FW7@\x0fi3\x98\xc0f\xb1\x11\x81', 40, filters)
>>> decompressor = lzham.LZHAMDecompressor(filters)
>>> decompressor.decompress(b'D\xad\xc0\x00\x07FW7@\x0fi3\x98\xc0f\xb1\x11\x81', 40)
如果需要修改LZHAMDecompressor
实例过滤器,可以简单地调用它的reinit
函数,如下所示:
>>> decompressor.reinit(filters)