zl程序教程

您现在的位置是:首页 >  其它

当前栏目

10.3 bz2--支持bzip2压缩和解压

-- 支持 压缩 解压 bz2 10.3
2023-09-14 09:10:35 时间

本模块主要提供了支持bzip2压缩算法的操作功能。bz2库包含内容:open()函数和BZ2File类主要用来读写压缩的文件;BZ2CompressorBZ2Decompressor类提供增量式的压缩和解压缩;compress()decompress()函数提供了一次性地压缩和解压的数据功能。

 

bz2.open(filename, mode='r', compresslevel=9, encoding=None, errors=None, newline=None)

打开一个 bzip2压缩的文件对象返回,打开方式可以是二进制或文本方式。参数filename可以是一个文件名称,或者一个已经存在的文件对象;参数mode是打开文件的方式,可以支持:'r', 'rb', 'w', 'wb', 'x', 'xb', 'a', 'ab', 'rt', 'wt', 'xt', or 'at' ;参数compresslevel是压缩级别,可以是19级别;对于文本方式可以使用参数encoding/errors/newline等参数。

 

class bz2.BZ2File(filename, mode='r', buffering=None, compresslevel=9)

以二进制的方式打开bzip2压缩的文件。如果参数filenamestrbytes类型,直接打开此文件,否则就当作文件对象来操作;参数mode与前面函数一样;参数buffering已经不再使用,忽略掉;参数compresslevel与前面函数一样。

 

peek([n])

返回缓冲区里的数据,但不移动文件位置指针。

 

class bz2.BZ2Compressor(compresslevel=9)

创建一个新压缩对象,本对象使用在增量式地压缩数据。参数compresslevel是压缩级别,范围是19,默认值是9.

 

compress(data)

提供部分数据给压缩对象,返回一块已经压缩的数据对象,或空对象。剩余部分数据等到调用flush()函数才会进行压缩返回。

 

flush()

完成压缩过程,返回最后压缩的数据对象。

 

class bz2.BZ2Decompressor

创建解压缩对象,增量式地解压缩。

 

decompress(data)

对提供的数据尝试解压缩,如果可以解压就返回解压的数据对象。

 

eof

如果到达文件尾返回True

 

unused_data

结束了压缩流之后未曾使用的数据。

 

bz2.compress(data, compresslevel=9)

对数据data进行一次性地压缩。

 

bz2.decompress(data)

对数据data进行一次性地解压。

 

例子:

#python 3.4

from bz2 import BZ2File

 

line = b'http://blog.csdn.net/caimouse'

with BZ2File('test.bz2', 'wb') as f:

    f.write(line)

 

with BZ2File('test.bz2', 'rb') as f:

    test = f.read()

    print(test)

结果输出如下:

b'http://blog.csdn.net/caimouse'


蔡军生  QQ:9073204  深圳