使用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)
