欢迎访问宙启技术站
智能推送

Python中使用bz2压缩和解压缩文件的方法

发布时间:2024-01-14 05:05:31

在Python中,我们可以使用bz2模块来进行文件的压缩和解压缩操作。bz2模块提供了BZ2File类,可以直接读写压缩和解压缩后的文件。

下面是一个使用bz2模块进行文件压缩和解压缩的例子:

import bz2

# 压缩文件
def compress_file(input_file, output_file):
    with open(input_file, 'rb') as f_in:
        with bz2.BZ2File(output_file, 'wb') as f_out:
            f_out.writelines(f_in)

# 解压缩文件
def decompress_file(input_file, output_file):
    with bz2.BZ2File(input_file, 'rb') as f_in:
        with open(output_file, 'wb') as f_out:
            f_out.writelines(f_in)

# 压缩文件
compress_file('input.txt', 'compressed.bz2')

# 解压缩文件
decompress_file('compressed.bz2', 'output.txt')

在上面的例子中,我们定义了compress_file()decompress_file()两个函数来进行文件的压缩和解压缩操作。这两个函数都接受输入文件路径和输出文件路径作为参数。

compress_file()函数中,我们首先使用open()函数读取输入文件的二进制内容,然后使用BZ2File类创建一个压缩文件对象,并指定为写入模式。接着,我们使用writelines()方法将输入文件内容写入压缩文件。

decompress_file()函数中,我们首先使用BZ2File类打开压缩文件,并指定为读取模式。然后,我们使用open()函数创建一个解压缩文件对象,并将压缩文件内容写入解压缩文件。

在使用时,你只需要替换compress_file()decompress_file()函数中的input_fileoutput_file参数为你自己的文件路径即可。

需要注意的是,由于压缩和解压缩操作涉及到文件的读写,因此要保证你对文件的读写权限,并确保输入文件存在而输出文件不存在。