Python2.7-zlib
zlib 模块,提供了压缩和解压缩的函数,都是对字符串进行操作的,可以理解为是各种不同类型的数据经过处理成为字符串或是二进制字符串,再进行压缩解压缩。是和 gzip 相兼容的压缩模块
模块方法:
zlib.adler32(data[, value]):计算数据 data 的 Adler-32 值,这是一个用于验证数据是否完整的算法,和 CRC32 算法相比速度更快
zlib.crc32(data[, value]):计算数据 data 的 CRC32 值,也是一个用于验证数据是否完整的算法
zlib.compress(string[, level]):压缩 string 里的数据,level 指定压缩方式,1-9 递增速度变慢,压缩变多,0 代表不压缩,默认 6
zlib.decompress(string[, wbits[, bufsize]]):解压缩 string 里的数据,wbits 指定系统读入缓冲区的大小,bufsize 指定输出缓冲区的大小
模块的类:
1、Compression 对象,可以一点点读取数据,不用一次性读入占用大量内存
1.1 构建对象
zlib.compressobj([level[, method[, wbits[, memlevel[, strategy]]]]]):level、wbits 同上,method 指定压缩算法,目前就只有默认的 DEFLATED,memlevel 控制内部压缩时的内存使用量,1-9 越高用越多内存,但速度更快压缩更多,默认 8,strategy 用于调整压缩算法 默认 Z_DEFAULT_STRATEGY, 还有 Z_FILTERED 和 Z_HUFFMAN_ONLY,不知道和 method 有什么区别,一般都是默认
1.2 对象方法
compress(string):压缩 string,返回压缩后的字符串,结果要和之前调用的 compress 的结果连接起来,最后再调用 flush,完整压缩
flush([mode]):把剩余的输入在缓冲区内的数据全部压缩,返回压缩后的字符串,mode 可以为 Z_SYNC_FLUSH, Z_FULL_FLUSH,或 Z_FINISH。默认 Z_FINISH,不能再对这个对象调用 compress,只能删除对象,另外两个允许后续的操作
copy():拷贝一个 Compression 对象,对于有共同部分的文件压缩时有用
2、Decompression 对象,也是可以一点点读取数据,不用消耗大量内存
2.1 构建对象
zlib.decompressobj([wbits]):wbits 同上
2.2 对象方法
decompress(string[, max_length]):解压缩 string,max_length 指定一次解压结果的最大长度,剩余未压缩的会保存在属性 unconsumed_tail 中,未指定则一次解压所有读入的数据
flush([length]):把剩余的输入在缓冲区内的数据全部解压缩,返回解压缩后的字符串,length 指定输出缓冲区的初始大小
copy():拷贝一个 Decompression 对象,可以保存解压中途的一个状态
2.3 对象属性
unused_data:保存了还没被解压的数据,只有完全解压完了,它才会变成空字符串
unconsumed_tail:保存了上次 decompress 由于超过指定的 max_length 而没有解压完的数据,所以一定要再调用 decompress 把它完全解压完
Python2.7-zlib的更多相关文章
- 安装zlib的过程(Compression requires the (missing) zlib module)(Python2.6升级为2.7出现的问题)
觉得有必要把解决问题的过程写下来 1,因为要安装flask,所以安装pip,所以安装setuptools,所以安装zlib.(具体过程http://www.cnblogs.com/aiyr/p/726 ...
- Linux下安装python-2.7 先zlib
2018-04-25 发布 Linux下安装python-2.7 python 1.1k 次阅读 · 读完需要 25 分钟 1 安装依赖的库 yum -y install python-deve ...
- Centos6.5 python2.7连接mysql数据库
1.环境是centos6.5 32位系统,python版本是2.7.12,mysql版本是5.5.22.准备好所需压缩包,MySQL-python-1.2.4b4.tar.gz pip-6.0.7. ...
- linux 安装 python2.7
若新安装虚拟机,或者新装linux系统.需安装gcc等yum -y install gcc gcc-c++ autoconf automake cmake ntp rsync ssh vim yum ...
- centos6升级python2.7
#下载python #wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2 #安装支持https yum install opens ...
- centos python2.6升级到2.7 还有单独的python3.5环境
查看python版本 #python -V Python 1.下载Python-2.7.3 #wget http://python.org/ftp/python/2.7.3/Python-2.7.3. ...
- Windows下使用scapy+python2.7实现对pcap文件的读写操作
scapy在linux环境中对pcap文件进行操作非常方便,但在windows下,特别是在python2.7环境下却会碰到各种各样的依赖包无法使用的问题,最明显的可能就属dnet和pcap的pytho ...
- python 安装 setuptools Compression requires the (missing) zlib module 的解决方案
背景: 虚拟机centos下安装python辅助工具 setuptools报错,错误信息大概如下: Traceback (most recent call last): File "setu ...
- CentOS 6.X更新Python2.7.x版本 安装pip
在安装新版之前安装 先安装bz2.zlib,执行下列代码进行安装 yum install -y zlib-devel bzip2-devel xz-libs wget openssl openssl- ...
- CentOS6下编译安装Python2.7.6方法
关于在CentOS6下编译安装Python2.7.6的方法非常的多了,小编以前也介绍过相关的文章了,下面一聚教程小编再来为各位介绍一下吧,希望文章能帮助到各位. CentOS下面Python在升级 ...
随机推荐
- Java JDBC MySQL
一.驱动 下载地址:https://dev.mysql.com/downloads/connector/j/ 二.数据库连接配置 jdbc:mysql://address:port/database? ...
- 新建hadoop用户以及用户组,给予sudo权限
1.首先新建用户,adduser命令 sudo adduser hadoop passwd hadoop 输入密码之后,一路 y 确定. 2.添加用户组 在创建hadoop用户的同时也创建了hadoo ...
- python常用模块-01
1. 简单了解模块 写的每一个py文件都是一个模块. 还有一些我们一直在使用的模块 buildins 内置模块. print, input random 主要是和随机相关的内容 random() ...
- chrome-Firefox-IE浏览器兼容总结
作为一名WEB前端程序员,相信每个人对浏览器的兼容都"情有独钟",下面就一些常用的浏览器的兼容列举一二. 一.块级元素(block)一般不转化为inline-block,其实是因为 ...
- ESLint 使用方法
一.全局安装 npm install -g eslint 二.生成配置文件 在项目根目录执行init,生成.eslintrc文件.在init时,要求根目录存在package.json.当然也可以直接复 ...
- python数据类型之间的转换
1,字符串转整型,前提条件是该字符串为纯数字. a = '1' a = int(a) 2,整型转字符串 a= 1 a = str(a) 3,整型转浮点型 a = 1 a = float(a) 4,浮点 ...
- ssh中文手册
ssh-keygen 中文手册 sshd_config 中文手册 sshd 中文手册
- 学习笔记:The Best of MySQL Forum
http://mysql.rjweb.org/bestof.html I have tagged many of the better forum threads. 'Better' is based ...
- Vue以CDN方式调用Swiper轮播异常
问题概览: 有一个小型单页应用项目,嫌用组件式调用vue-swiper麻烦,因此以CDN的方式调用swiper,结果轮播的图不动了! 爬了半天百度和谷歌都无解决方案,最后曲线救国的方式解决了问题. 解 ...
- Spark 分布式调试工具
0. 说明 编写工具类,考察 Spark 分布式程序的执行地点 1. 工具类编写 [ JMX ] Java Management Extend , Java 管理扩展服务. 主要用于运维和监控. [测 ...