本模块主要提供了支持bzip2压缩算法的操作功能。bz2库包含内容:open()函数和BZ2File类主要用来读写压缩的文件;BZ2Compressor和BZ2Decompressor类提供增量式的压缩和解压缩;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是压缩级别,可以是1到9级别;对于文本方式可以使用参数encoding/errors/newline等参数。
class bz2.BZ2File(filename, mode='r', buffering=None, compresslevel=9)
以二进制的方式打开bzip2压缩的文件。如果参数filename是str或bytes类型,直接打开此文件,否则就当作文件对象来操作;参数mode与前面函数一样;参数buffering已经不再使用,忽略掉;参数compresslevel与前面函数一样。
peek([n])
返回缓冲区里的数据,但不移动文件位置指针。
class bz2.BZ2Compressor(compresslevel=9)
创建一个新压缩对象,本对象使用在增量式地压缩数据。参数compresslevel是压缩级别,范围是1到9,默认值是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 深圳