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数据库的脚本代码
Jun 10 Python
python与caffe改变通道顺序的方法
Aug 04 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
余弦相似性计算及python代码实现过程解析
Sep 18 Python
Pytorch to(device)用法
Jan 08 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
基于matplotlib xticks用法详解
Apr 16 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
opencv 图像轮廓的实现示例
Jul 08 Python
Python3使用tesserocr识别字母数字验证码的实现
Jan 29 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实现数组筛选奇数和偶数示例
2014/04/11 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
载入进度条 效果
2006/07/08 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
html5+canvas实现支持触屏的签名插件教程
2017/05/08 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
对python mayavi三维绘图的实现详解
2019/01/08 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
python 负数取模运算实例
2020/06/03 Python
如何用Anaconda搭建虚拟环境并创建Django项目
2020/08/02 Python
Django websocket原理及功能实现代码
2020/11/14 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
会计专业自我鉴定范文
2013/10/06 职场文书
学习十八大精神心得体会
2013/12/31 职场文书
交通安全寄语大全
2014/04/08 职场文书
2015年试用期工作总结
2014/12/12 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
作文之亲情600字
2019/09/23 职场文书
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏
Spring Boot 实现 WebSocket
2022/04/30 Java/Android
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang