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

Python中使用bz2模块进行多文件压缩的方法

发布时间:2023-12-19 03:04:51

在Python中,可以使用bz2模块来实现多文件压缩。bz2模块提供了压缩和解压缩文件的功能,并且支持多文件的压缩。

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

import bz2
import os

# 定义需要压缩的文件列表
files_to_compress = [
    'file1.txt',
    'file2.txt',
    'file3.txt'
]

# 定义压缩文件的名称
compressed_file = 'compressed.bz2'

# 打开压缩文件,以写入二进制模式打开
with bz2.BZ2File(compressed_file, 'wb') as f_out:
    # 遍历需要压缩的文件列表
    for file_name in files_to_compress:
        # 打开要压缩的文件,以读取二进制模式打开
        with open(file_name, 'rb') as f_in:
            # 读取文件内容
            file_content = f_in.read()
            # 将文件内容写入压缩文件
            f_out.write(file_content)
        # 删除已压缩的文件
        os.remove(file_name)

print(f'压缩文件{compressed_file}已创建并压缩{len(files_to_compress)}个文件')

以上代码实现了将多个文件压缩成一个bz2格式的压缩文件。首先,我们定义了需要压缩的文件列表files_to_compress和压缩文件的名称compressed_file。然后,利用bz2.BZ2File方法打开压缩文件,以写入二进制模式打开,并使用with语句来自动关闭文件。接着,使用for循环遍历需要压缩的文件列表,对于每个文件,我们使用open方法以读取二进制模式打开文件,并使用f_in.read()方法读取文件内容。最后,将文件内容使用f_out.write()方法写入到压缩文件中,并使用os.remove()方法删除原始文件。

运行以上代码后,会输出压缩文件已创建并压缩的文件数量,并在当前目录下生成一个名为compressed.bz2的压缩文件,其中包含了file1.txtfile2.txtfile3.txt三个文件的内容。