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中使用NLTK库实现对词干的提取的教程
Apr 08 Python
在Python的Bottle框架中使用微信API的示例
Apr 23 Python
Python正则表达式教程之二:捕获篇
Mar 02 Python
Python工厂函数用法实例分析
May 14 Python
Python3中bytes类型转换为str类型
Sep 27 Python
Python3多线程版TCP端口扫描器
Aug 31 Python
Python文件路径名的操作方法
Oct 30 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
Feb 26 Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 Python
记录模型训练时loss值的变化情况
Jun 16 Python
Python爬虫基础之简单说一下scrapy的框架结构
Jun 26 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
DSP接收机前端设想
2021/03/02 无线电
SONY ICF-F10中波修复记
2021/03/02 无线电
PHP - Html Transfer Code
2006/10/09 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
刷新PHP缓冲区为你的站点加速
2015/10/10 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
JavaScript实现按键精灵的原理分析
2017/02/21 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
django使用多个数据库的方法实例
2021/03/04 Python
荷兰超市:DEEN
2018/03/14 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
临床医学系毕业生推荐信
2013/11/09 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
小学班主任自我评价
2015/03/11 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
学生会任命书范本
2015/09/21 职场文书
Python天气语音播报小助手
2021/09/25 Python
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技