IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]10.3 bz2--支持bzip2压缩和解压

    caimouse发表于 2016-05-08 09:03:12
    love 0

    本模块主要提供了支持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  深圳



沪ICP备19023445号-2号
友情链接