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实用日期时间处理方法汇总
May 09 Python
利用Python实现图书超期提醒
Aug 02 Python
python使用openpyxl库修改excel表格数据方法
May 03 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
pycharm 将python文件打包为exe格式的方法
Jan 16 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
Jul 11 Python
Numpy将二维数组添加到空数组的实现
Dec 05 Python
手动安装python3.6的操作过程详解
Jan 13 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 Python
Python偏函数实现原理及应用
Nov 20 Python
Python编程中Python与GIL互斥锁关系作用分析
Sep 15 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
Adodb的十个实例(清晰版)
2006/12/31 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
javascript设计模式 ? 原型模式原理与应用实例分析
2020/04/10 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
学习python (1)
2006/10/31 Python
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
Python实现读取并保存文件的类
2017/05/11 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
"序列点" 是什么
2016/07/29 面试题
linux面试题参考答案(6)
2016/06/23 面试题
档案室主任岗位职责
2014/02/12 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
个人借款担保书
2014/04/02 职场文书
身边的榜样活动方案
2014/08/20 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
婚前财产协议书范本
2014/10/19 职场文书
酒店温馨提示语
2015/07/14 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
学校教师培训工作总结
2015/10/14 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
iOS 16进一步确认,一共支持16款iPhone
2022/04/28 数码科技