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

如何用Python中的bz2模块压缩和解压缩文件夹

发布时间:2024-01-11 03:03:33

Python中的bz2模块提供了对文件和文件夹进行压缩和解压缩的功能。它使用了bzip2算法,可以实现更高的压缩比。

首先,我们需要安装bz2模块。在终端中运行以下命令进行安装:

pip install bz2file

接下来,我们可以使用以下代码示例来压缩文件夹:

import os
import bz2

def compress_folder(folder_path, output_path):
    with bz2.BZ2File(output_path, 'w') as output_file:
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                file_path = os.path.join(root, file)
                with open(file_path, 'rb') as input_file:
                    output_file.write(input_file.read())
                    # 添加换行符以区分不同文件
                    output_file.write(b'
')

# 压缩文件夹
folder_path = '/path/to/folder'  # 要压缩的文件夹路径
output_path = '/path/to/output/file.bz2'  # 压缩后的输出文件路径
compress_folder(folder_path, output_path)

在上面的示例中,我们首先使用os.walk函数遍历文件夹中的所有文件。然后,我们使用BZ2File类创建一个压缩文件对象,并将要压缩的文件内容写入到压缩文件中。最后,我们使用write方法添加一个换行符,以便稍后在解压缩时能够区分不同的文件。

接下来,我们可以使用以下代码示例来解压缩文件夹:

import os
import bz2

def decompress_folder(input_path, output_path):
    with bz2.BZ2File(input_path, 'rb') as input_file:
        with open(output_path, 'wb') as output_file:
            for line in input_file:
                if line != b'
':
                    output_file.write(line)

# 解压缩文件夹
input_path = '/path/to/compressed/file.bz2'  # 压缩文件的路径
output_path = '/path/to/output/folder'  # 解压缩后的文件夹路径
decompress_folder(input_path, output_path)

在上面的示例中,我们首先使用BZ2File类打开压缩文件,并使用open函数创建一个输出文件。然后,我们逐行读取压缩文件内容,并将非换行符行写入到输出文件中,从而还原原始文件。

这就是使用Python中的bz2模块进行文件夹压缩和解压缩的方法。希望对你有所帮助!