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打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
python模仿网页版微信发送消息功能
Feb 24 Python
Python向MySQL批量插数据的实例讲解
Mar 31 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
使用python实现mqtt的发布和订阅
May 05 Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 Python
python Manager 之dict KeyError问题的解决
Dec 21 Python
pytorch方法测试详解——归一化(BatchNorm2d)
Jan 15 Python
python相对企业语言优势在哪
Jun 12 Python
python opencv角点检测连线功能的实现代码
Nov 24 Python
django学习之ajax post传参的2种格式实例
May 14 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
2021年最新CPU天梯图
2021/03/04 数码科技
第五节 克隆 [5]
2006/10/09 PHP
基于文本的访客签到簿
2006/10/09 PHP
怎样在UNIX系统下安装php3
2006/10/09 PHP
php文件操作实例代码
2012/05/10 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
Python实现最大子序和的方法示例
2019/07/05 Python
下载官网python并安装的步骤详解
2019/10/12 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
python批量修改交换机密码的示例
2020/09/22 Python
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
英语老师推荐信
2014/02/26 职场文书
导游个人求职信范文
2014/03/23 职场文书
毕业寄语大全
2014/04/09 职场文书
党员领导干部承诺书
2014/05/28 职场文书
预备党员综合考察材料
2014/05/31 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers