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创建xml的方法
Mar 10 Python
Python实现查找匹配项作处理后再替换回去的方法
Jun 10 Python
python输入错误密码用户锁定实现方法
Nov 27 Python
Python处理CSV与List的转换方法
Apr 19 Python
对Python字符串中的换行符和制表符介绍
May 03 Python
pyqt5的QComboBox 使用模板的具体方法
Sep 06 Python
Django uwsgi Nginx 的生产环境部署详解
Feb 02 Python
Python基于mysql实现学生管理系统
Feb 21 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
python help函数实例用法
Dec 06 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作为Shell脚本语言使用
2006/10/09 PHP
用PHP与XML联手进行网站编程代码实例
2008/07/10 PHP
php设计模式 Factory(工厂模式)
2011/06/26 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
2019/02/15 PHP
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
纯js实现倒计时功能
2017/01/06 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
浅谈python中set使用
2016/06/30 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
小学生新学期寄语
2014/01/19 职场文书
红领巾心向党广播稿
2014/01/19 职场文书
总经理文秘岗位职责
2014/02/03 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
物理分数没达标检讨书
2014/09/13 职场文书
兵马俑导游词
2015/02/02 职场文书
入学证明
2015/06/23 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL