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 &amp; Flask 实现RESTful Web API的实例
Sep 19 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
python多线程调用exit无法退出的解决方法
Feb 18 Python
django基于restframework的CBV封装详解
Aug 08 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
python打印n位数“水仙花数”(实例代码)
Dec 25 Python
pytorch 实现删除tensor中的指定行列
Jan 13 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
Mar 12 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 静态化实现代码
2009/03/20 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
2015/12/24 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
从Python的源码来解析Python下的freeblock
2015/05/11 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
python3.6编写的单元测试示例
2019/08/17 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
通过实例学习Python Excel操作
2020/01/06 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
python之语音识别speech模块
2020/09/09 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
竞聘演讲稿范文
2014/01/12 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
报案材料怎么写
2015/05/25 职场文书
2016年寒假家长评语
2015/10/10 职场文书
Java完整实现记事本代码
2022/06/16 Java/Android