bzip2 是一种用于压缩和解压缩文件的开源算法。Python 的 bz2 模块提供了以编程方式实现 bzip2 算法的功能。
open() 函数是此模块的主要接口。
Open() 函数
此函数将打开 bzip2 压缩文件并返回一个文件对象。文件可以以二进制/文本模式打开,并具有读/写权限。该函数根据 1 到 9 之间的 compressionlevel 参数执行压缩。
write() 函数
当文件以 'w' 或 'wb' 模式打开时,此功能对文件对象可用。在二进制模式下,它将压缩的二进制数据写入文件。在普通文本模式下,文件对象包装在 TextIOWrapper 对象中以执行编码。
read() 函数
在读取模式下打开时,此函数会读取它并返回未压缩的数据。
以下代码将压缩数据写入 bzip2 文件。
这将在当前目录中创建 test.bz2 文件。任何解压缩工具都会显示一个 'test' 文件 在其中。要从此 test.bz2 文件中读取未压缩的数据,请使用以下代码 -
bz2 模块还定义了 BZ2File 类。它的对象根据构造函数的 mode 参数充当 compressor 和 desorb。
BZ2File() 方法
这是构造函数。与 open() 函数一样,file 和 mode 参数是必需的。默认情况下,压缩级别为 9,可以介于 1 到 9 之间。
BZ2Compressor() 方法
此函数返回 Incremental compressor 类的对象。该类中每次调用 compress() 方法都会返回一个压缩数据块。多个块可以连接在一起,最后写入 bzip2 压缩文件。
flush() 方法
此方法清空缓冲区并返回其中要附加到压缩对象的数据块。
BZ2Decompressor() 方法
此函数返回 incremental decompressor 的对象。解压缩数据的各个 chind 与 flush 数据连接在一起,形成未压缩的数据。
以下示例首先压缩 list 对象中的每个项目,并将连接的 byte 对象写入文件。数据由 BZ2Decompressor 对象检索。
要解压缩,请使用 BZ2Decompressor 类。