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模拟登录的多种方法(四种)
Jun 01 Python
详解从Django Rest Framework响应中删除空字段
Jan 11 Python
python实现银联支付和支付宝支付接入
May 07 Python
Python实现计算对象的内存大小示例
Jul 10 Python
对python中UDP,socket的使用详解
Aug 22 Python
Python爬取阿拉丁统计信息过程图解
May 12 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
Pycharm在指定目录下生成文件和删除文件的实现
Dec 28 Python
python 30行代码实现蚂蚁森林自动偷能量
Feb 08 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 Python
python四种出行路线规划的实现
Jun 23 Python
Python读取和写入Excel数据
Apr 20 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
php visitFile()遍历指定文件夹函数
2010/08/21 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
慎用 somefunction.prototype 分析
2009/06/02 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
2019/04/14 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
客房主管岗位职责
2013/12/09 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
立案决定书范文
2015/06/24 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书