zoukankan      html  css  js  c++  java
  • bz2 (Data Compression) – Python 中文开发手册

    [
  •   Python 中文开发手册

    bz2 (Data Compression) - Python 中文开发手册

    2.3版本的新功能。

    该模块为bz2压缩库提供了一个全面的界面。它实现了一个完整的文件接口,一次性(解除)压缩功能,以及用于顺序(反)压缩的类型。

    以下是bz2模块提供的功能摘要:

    BZ2File类实现一个完整的文件接口,包括readline(),readlines(),writelines(),seek(),等;BZ2File类实现模拟seek()支持;BZ2File 类实现通用换行支持;BZ2File 类使用从文件对象借用的readahead算法提供优化的行迭代;由BZ2Compressor和BZ2Decompressor类支持的顺序(反)压缩;由compress()和decompress()功能支持的一次性(去)压缩;线程安全使用单独的锁定机制。

    1.(解压缩)文件

    处理压缩文件是由BZ2File课程提供的。

    class bz2.BZ2File(filename[, mode[, buffering[, compresslevel]]])

    打开一个bz2文件。模式可以是'r'或者'w',用于阅读(默认)或写作。当打开写入时,如果该文件不存在,则该文件将被创建,否则将被截断。如果给出缓冲,0意味着无缓冲,而较大的数字指定缓冲区大小; 默认是0。如果给出了压缩级别,它必须是介于1和之间的数字9; 默认是9。添加'U'到模式以通用换行模式打开文件进行输入。任何以输入文件结尾的行将被视为' 'Python中的行。另外,如此打开的文件将获得该属性newlines; 该属性的值是一个None(没有新行读还), ,,' '' '' '或者包含所有可见的新行类型的元组。通用换行符仅在阅读时可用。实例以与正常file实例相同的方式支持迭代。

    BZ2File支持该with声明。

    在版本2.7中进行了更改:with添加了对语句的支持。

    注意

    该类不支持包含多个流的输入文件(例如由pbzip2工具生成的文件)。当读取这样的输入文件时,只有第一个流将被访问。如果您需要支持多流文件,请考虑使用第三方bz2file模块(可从PyPI获得)。这个模块提供了Python 3.3的BZ2File类的后端,它支持多流文件。

    close()

    关闭文件。将数据属性设置closed为true。封闭的文件不能用于进一步的I / O操作。close()可能会不止一次地被调用。

    read([size])

    读取大多数大小的未压缩字节,以字符串形式返回。如果size参数为负值或省略,请阅读,直到达到EOF。

    readline([size])

    从文件中返回下一行,作为字符串保留换行符。非负大小参数限制了返回的最大字节数(然后可能会返回一个不完整的行)。在EOF处返回空字符串。

    readlines([size])

    返回读取的行列表。如果给出可选的大小参数,则返回的行中的总字节数的近似范围。

    xreadlines()

    为了向后兼容。BZ2File对象现在包含之前在xreadlines模块中执行的性能优化。

    自从版本2.3开始不推荐使用:这仅适用于与file对象上的此名称的方法的兼容性,不建议使用此名称。for line in file改为使用。

    seek(offset[, whence])

    移动到新的文件位置。参数偏移量是一个字节数。可选参数whence缺省为os.SEEK_SET或0(从文件起始位置偏移; offset应该是>= 0); 其它值os.SEEK_CUR或1(移动相对于当前位置;偏移可为正或负),和os.SEEK_END或2(相对移动到文件结尾的;偏移通常是负的,虽然许多平台允许寻求超出文件的结尾)。

    请注意,模拟寻找bz2文件,并根据参数操作可能会非常缓慢。

    tell()

    返回当前文件的位置,一个整数(可能是一个长整数)。

    write(data)

    将字符串数据写入文件。请注意,由于缓冲,close()可能需要在磁盘上的文件反映写入的数据之前。

    writelines(sequence_of_strings)

    将字符串序列写入文件。请注意,不添加换行符。该序列可以是任何可生成字符串的可迭代对象。这相当于为每个字符串调用write()。

    2.顺序(反)压缩

    顺序压缩和解压缩使用类BZ2Compressor和BZ2Decompressor。

    class bz2.BZ2Compressor([compresslevel])

    创建一个新的压缩机对象。这个对象可以用来顺序压缩数据。如果您想一次压缩数据,请改用该compress()功能。的compresslevel参数,如果给定的,必须之间的数字1和9; 默认是9。

    compress(data)

    向压缩机对象提供更多数据。它会尽可能地返回压缩数据块。当您完成提供数据压缩时,调用该flush()方法来完成压缩过程,并返回内部缓冲区中留下的内容。

    flush()

    完成压缩过程并返回内部缓冲区中留下的内容。调用此方法后,您不得使用压缩器对象。

    class bz2.BZ2Decompressor

    创建一个新的解压缩器对象。该对象可用于顺序解压缩数据。如果您想一次性解压缩数据,请改用该decompress()功能。

    decompress(data)

    向解压缩器对象提供更多数据。它会尽可能地返回大量的解压缩数据。如果您在找到流结束后尝试解压缩数据,EOFError将会被提升。如果在数据流结束后发现任何数据,它将被忽略并保存在unused_data属性中。

    3.一次压缩

    通过compress()和decompress()功能提供一次性压缩和解压缩。

    bz2.compress(data[, compresslevel])

    一次压缩数据。如果要按顺序压缩数据,请使用BZ2Compressor替代的实例。的compresslevel参数,如果给定的,必须之间的数字1和9; 默认是9。

    bz2.decompress(data)

    一次性解压缩数据。如果要按顺序解压缩数据,请使用BZ2Decompressor替代的实例。

  •   Python 中文开发手册
    ]
    转载请保留页面地址:https://www.breakyizhan.com/python/34835.html
  • 相关阅读:
    OSPF
    【今日CS 视觉论文速览】 24 Jan 2019
    【今日CS 视觉论文速览】Wed, 23 Jan 2019
    【今日CS 视觉论文速览】 21 Jan 2019
    【Processing学习笔记】安装与入门
    【今日CS 视觉论文速览】Part2, 18 Jan 2019
    【今日CS 视觉论文速览】Fri, 18 Jan 2019
    【今日CS 视觉论文速览】Thu, 17 Jan 2019
    【今日CS 视觉论文速览】Part2, 16 Jan 2019
    【今日CS 视觉论文速览】Wed, 16 Jan 2019
  • 原文地址:https://www.cnblogs.com/breakyizhan/p/13263123.html
Copyright © 2011-2022 走看看