用于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.compressLZHAMCompressor一起使用的示例:

 >>> 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.decompressLZHAMDecompressor一起使用的示例:

 >>> 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)

<>我是C++新手,所以我的代码可能是垃圾。如果您有任何错误要报告,请随时与我联系@galaxy1036 1601。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java的单元测试测试用例库。util。列出实现   java通过超类进行序列化/反序列化   java Android获取设备语言ISO字符串   java如何打开广告的行动。移动   Eclipse IDE for(嵌入式C/C++)开发者202012:经典的深色主题深黑色背景和菜单中的文本   java使用不同的内容动态创建TableView(JavaFX)   java JAXB将多个同名节点解组   java ClassDefNotFoundException,即使类由类加载器加载(服务器上安装了多个应用程序)   java有没有办法关闭在后端生成的MqttClient线程?   html如何在网站上的java小程序中包含图像?   java无法访问已分配给超类引用的子类实例变量   java在TableViewer中双击打开对话框   列出如何创建ListNode。JAVA   java如何从文本中输出的数组中放入随机图像