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在升级 ...
随机推荐
- js-ES6学习笔记-Class(3)
1.Class之间可以通过extends关键字实现继承. class ColorPoint extends Point { constructor(x, y, color) { super(x, y) ...
- python中的赋值与深浅拷贝的区别
import copy lt = [1, 2, [3, 4]] # 赋值会增加一个引用,访问的都是同一数据 # lt2 = lt # 浅拷贝:只拷贝对象本身,里面的元素只会增加一个引用 lt2 = l ...
- PHP 协程最简洁的讲解
协程,又称微线程,纤程.英文名Coroutine.协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执 ...
- javascript返回上一页的三种写法
window.history.go(-1); //返回上一页 window.history.back(); //返回上一页不会造成死循环 //如果要强行刷新的话就是:window.history.ba ...
- 基于react的标准form+table页面的请求流程图
componentDidMount直接走handleSearch而不走loadData,是为了当form有默认初始值的时候也能适用! --------------------2018.2.7新增--- ...
- android 解决连接电视机顶盒失败的方法
今天在开发过程中,需要连接海美迪的电视盒子,这个盒子是基于android6.0的版本,之前连接其它电视盒子都正常,当输入 adb -s xxxx shell后,盒子连接失败,日志如下: error: ...
- 关于动态加载js
已知一个需要动态加载的js的文件路径数组,动态加载数组里面所有的js文件. 加载分两种情况: 1. 并行加载,不管js的执行顺序. 2. 串行加载,即一个一个加载,上一个加载完再加载下一个,直到最后. ...
- API接口安全设计(转)
接口的安全性主要围绕Token.Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看: Token授权机制:用户使用用户名密码登录后服务器给客户端返回一个To ...
- MSCRM2016 取消邮箱强制SSL
在新建电子邮件服务器配置文件时Advanced中的Use SSL for Incoming/Outgoing Connection默认都是启用的而且无法编辑,启用SSL当然是为了安全的考虑,但当客户的 ...
- 进程控制编程——Linux编程
1.进程的创建 编写一段程序,使用系统调用fork( )创建两个子进程,在系统中有一个父进程和两个子进程活动.让每个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b” 和“c”. ...