python用模块zlib压缩与解压字符串和文件的方法


Posted in Python onDecember 16, 2016

python中zlib模块是用来压缩或者解压缩数据,以便保存和传输。它是其他压缩工具的基础。下面来一起看看python用模块zlib压缩与解压字符串和文件的方法。话不多说,直接来看示例代码。

例子1:压缩与解压字符串

import zlib
message = 'abcd1234'
compressed = zlib.compress(message)
decompressed = zlib.decompress(compressed)

print 'original:', repr(message)
print 'compressed:', repr(compressed)
print 'decompressed:', repr(decompressed)

结果

original: 'abcd1234'
compressed: 'x\x9cKLJN1426\x01\x00\x0b\xf8\x02U'
decompressed: 'abcd1234'

例子2:压缩与解压文件

import zlib
def compress(infile, dst, level=9):
 infile = open(infile, 'rb')
 dst = open(dst, 'wb')
 compress = zlib.compressobj(level)
 data = infile.read(1024)
 while data:
  dst.write(compress.compress(data))
  data = infile.read(1024)
 dst.write(compress.flush())

def decompress(infile, dst):
 infile = open(infile, 'rb')
 dst = open(dst, 'wb')
 decompress = zlib.decompressobj()
 data = infile.read(1024)
 while data:
  dst.write(decompress.decompress(data))
  data = infile.read(1024)
 dst.write(decompress.flush())

if __name__ == "__main__":
 compress('in.txt', 'out.txt')
 decompress('out.txt', 'out_decompress.txt')

结果

生成文件

out_decompress.txt out.txt

问题——处理对象过大异常

>>> import zlib
>>> a = '123'
>>> b = zlib.compress(a)
>>> b
'x\x9c342\x06\x00\x01-\x00\x97'
>>> a = 'a' * 1024 * 1024 * 1024 * 10
>>> b = zlib.compress(a)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
OverflowError: size does not fit in an int

总结

以上就是关于python模块zlib压缩与解压的全部内容,希望本文的内容对大家学习或者使用python能有一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python读写ini文件的方法
May 28 Python
Python如何实现文本转语音
Aug 08 Python
如何在python字符串中输入纯粹的{}
Aug 22 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
python+PyQT实现系统桌面时钟
Jun 16 Python
Python Django 实现简单注册功能过程详解
Jul 29 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
python实时监控logstash日志代码
Apr 27 Python
python的pip有什么用
Jun 17 Python
Python中生成ndarray实例讲解
Feb 22 Python
matplotlib阶梯图的实现(step())
Mar 02 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
Apr 13 Python
Python用UUID库生成唯一ID的方法示例
Dec 15 #Python
python常见的格式化输出小结
Dec 15 #Python
python中子类继承父类的__init__方法实例
Dec 15 #Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
Dec 15 #Python
浅谈Python浅拷贝、深拷贝及引用机制
Dec 15 #Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 #Python
python中快速进行多个字符替换的方法小结
Dec 15 #Python
You might like
php记录日志的实现代码
2011/08/08 PHP
PHP验证码类ValidateCode解析
2017/01/07 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
javascript中的事件代理初探
2014/03/08 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
js轮播图代码分享
2016/07/14 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
js代码实现轮播图
2020/05/04 Javascript
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
Python使用django搭建web开发环境
2017/06/09 Python
python之pandas用法大全
2018/03/13 Python
Linux系统(CentOS)下python2.7.10安装
2018/09/26 Python
python3的输入方式及多组输入方法
2018/10/17 Python
PyCharm代码提示忽略大小写设置方法
2018/10/28 Python
简单的Python调度器Schedule详解
2019/08/30 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
《雪儿》教学反思
2014/04/17 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
文艺部部长竞选稿
2015/11/21 职场文书
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers