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连接mysql数据库示例(做增删改操作)
Dec 31 Python
python中使用pyhook实现键盘监控的例子
Jul 18 Python
python实现斐波那契递归函数的方法
Sep 08 Python
python定时器(Timer)用法简单实例
Jun 04 Python
python3实现ftp服务功能(服务端 For Linux)
Mar 24 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
Django的HttpRequest和HttpResponse对象详解
Jan 26 Python
Numpy数组array和矩阵matrix转换方法
Aug 05 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 Python
详解python如何引用包package
Jun 07 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
Jun 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
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
php中CI操作多个数据库的代码
2012/07/05 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
微信小程序 wx.request(OBJECT)发起请求详解
2016/10/13 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
会计专业自我鉴定范文
2013/12/29 职场文书
办理暂住证介绍信
2014/01/11 职场文书
求职意向书
2014/07/29 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
公司食堂管理制度
2015/08/05 职场文书