bz2模块提供了使用bzip2算法压缩和解压缩数据一套完整的接口。
bz2模块包括:
用于读写压缩文件的open()函数和BZ2File类
用于一次性压缩和解压缩的compress()
和 decompress()
函数
用于增量压缩和解压的 BZ2Compressor
和 BZ2Decompressor
类
文件压缩和解压
bz2.
open
(filename, mode='r', compresslevel=9, encoding=None, errors=None, newline=None)
以二进制或文本模式打开 bzip2 压缩文件,返回一个文件对象。
import bz2 file = bz2.open('xy.bz2', 'r')
for line in file:
print(line)
class bz2.
BZ2File
(filename, mode='r', buffering=None, compresslevel=9)
用二进制模式打开 bzip2 压缩文件
一次性的压缩和解压缩
bz2.compress(data)
压缩文件
bz2.decompress(data)
解压缩文件
import bz2 def main():
username = bz2.decompress(un)
username = username.decode()
print(username)
username1 = bz2.compress(username.encode())
print(username1) if __name__ == '__main__':
un = b'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
main()
得到结果:
增量压缩和解压缩
class bz2.
BZ2Compressor
(compresslevel=9)
compress
(data) 向压缩对象提供数据,提供完压缩数据后,使用fiush()方法以完成压缩方法。
flush
() 结束压缩进程,返回内部缓冲中剩余的压缩完成的数据。
class bz2.
BZ2Decompressor
创建一个新的解压缩器对象。该对象可用于递增地解压缩数据。
decompress
(data, max_length=-1)
解压缩数据,将未压缩的数据作为字节返回