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中os和shutil模块实用方法集锦
May 13 Python
使用Python发送各种形式的邮件的方法汇总
Nov 09 Python
利用python将xml文件解析成html文件的实现方法
Dec 22 Python
python中pytest收集用例规则与运行指定用例详解
Jun 27 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
Aug 09 Python
Python实现线性判别分析(LDA)的MATLAB方式
Dec 09 Python
Pycharm中Python环境配置常见问题解析
Jan 16 Python
通过python调用adb命令对App进行性能测试方式
Apr 23 Python
Keras预训练的ImageNet模型实现分类操作
Jul 07 Python
python打包多类型文件的操作方法
Sep 21 Python
用ldap作为django后端用户登录验证的实现
Dec 07 Python
python manim实现排序算法动画示例
Aug 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
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
python中子类继承父类的__init__方法实例
2016/12/15 Python
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
Python基础知识点 初识Python.md
2019/05/14 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
django自带调试服务器的使用详解
2019/08/29 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
pytorch中图像的数据格式实例
2020/02/11 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
方正Java笔试题
2014/07/03 面试题
个人求职简历的自我评价范文
2013/10/09 职场文书
决定成败的关键——创业计划书
2014/01/24 职场文书
关于迟到的检讨书
2014/01/26 职场文书
中华魂演讲稿
2014/05/13 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
MySQL限制查询和数据排序介绍
2022/03/25 MySQL