如何用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模块进行文件夹压缩和解压缩的方法。希望对你有所帮助!
