大家好,欢迎来到IT知识分享网。[
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’到模式以通用换行模式打开文件进行输入。任何以输入文件结尾的行将被视为’\n’Python中的行。另外,如此打开的文件将获得该属性newlines; 该属性的值是一个None(没有新行读还), ,,’\r”\n”\r\n’或者包含所有可见的新行类型的元组。通用换行符仅在阅读时可用。实例以与正常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://yundeesoft.com/27798.html