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
  • 相关阅读:
    godep使用
    golang导入包的几个说明:import
    X-Frame-Options 响应头
    HTTP Strict Transport Security
    为什么我们要使用HTTP Strict Transport Security?
    IFrame安全问题解决办法(跨框架脚本(XFS)漏洞)
    基于iframe的CFS(Cross Frame Script)和Clickjacking(点击劫持)攻击
    javaWeb防止恶意登陆或防盗链的使用
    关于Cookie 的HttpOnly属性(java/web操作cookie+Tomcat操作jsessionid)
    会话cookie中缺少HttpOnly属性 解决
  • 原文地址:https://www.cnblogs.com/breakyizhan/p/13263123.html
Copyright © 2011-2022 走看看