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

使用Python的arch()函数进行文件夹的压缩和解压缩实践

发布时间:2023-12-27 04:41:44

在Python中,可以使用shutil模块中的make_archive()函数和unpack_archive()函数来实现文件夹的压缩和解压缩。

首先,我们导入shutil模块和os模块,这两个模块都是Python标准库中的一部分。

import shutil
import os

接下来,我们将创建一个名为source_folder的文件夹,并在其中创建一些文件和子文件夹,用于演示压缩和解压缩操作。

source_folder = 'source_folder'
os.makedirs(source_folder)

# 在source_folder中创建一些文件和子文件夹
file1 = os.path.join(source_folder, 'file1.txt')
file2 = os.path.join(source_folder, 'file2.txt')
os.makedirs(os.path.join(source_folder, 'subfolder'))

with open(file1, 'w') as f:
    f.write('This is file 1')

with open(file2, 'w') as f:
    f.write('This is file 2')

现在,我们可以使用make_archive()函数将source_folder文件夹压缩成一个zip文件。make_archive()函数接受4个参数:输出文件的名称,输出文件的格式,要压缩的文件夹的路径,要包含在压缩文件中的根文件夹的路径(可选,默认为要压缩的文件夹的名称)。

zip_file = shutil.make_archive('compressed_folder', 'zip', source_folder)
print('压缩文件路径:', zip_file)

在上面的代码中,我们将source_folder压缩为一个zip文件,并将其保存为compressed_folder.zip

现在,我们可以使用unpack_archive()函数将zip文件解压缩到指定的目标文件夹中。unpack_archive()函数也接受4个参数:要解压缩的文件的路径,目标文件夹的路径,要使用的解压缩格式(可选,默认为自动检测),要删除的根文件夹的路径(可选)。

`python

target_folder = 'target_folder'

os.makedirs(target_folder)

shutil.unpack_archive(zip_file, target_folder)

print('解压缩到的目标文件夹:', target_folder)