Python中如何递归压缩和解压缩整个目录及其子目录
发布时间:2023-12-16 18:39:28
在Python中,可以使用shutil模块来递归压缩和解压缩整个目录及其子目录。下面是一个简单的示例:
压缩整个目录及其子目录:
import shutil
def compress_directory(directory, output_path):
shutil.make_archive(output_path, 'zip', directory)
compress_directory('path_to_directory', 'output_path')
解压缩整个目录及其子目录:
import shutil
def extract_directory(zipfile_path, output_directory):
shutil.unpack_archive(zipfile_path, output_directory)
extract_directory('path_to_zipfile', 'output_directory')
在上面的示例中,shutil.make_archive函数用于压缩整个目录及其子目录, 个参数是输出压缩文件的路径和名称,第二个参数是压缩文件格式,这里使用的是zip格式。shutil.unpack_archive函数用于解压缩整个目录及其子目录, 个参数是要解压的压缩文件路径,第二个参数是输出目录的路径。
以下是一个完整的示例,包括压缩和解压缩:
import shutil
def compress_directory(directory, output_path):
shutil.make_archive(output_path, 'zip', directory)
def extract_directory(zipfile_path, output_directory):
shutil.unpack_archive(zipfile_path, output_directory)
# 压缩整个目录及其子目录
compress_directory('path_to_directory', 'output_path')
# 解压缩整个目录及其子目录
extract_directory('path_to_zipfile', 'output_directory')
上面的示例中,path_to_directory是待压缩的目录路径,output_path是压缩文件的输出路径。path_to_zipfile是待解压的压缩文件路径,output_directory是解压后的目录的输出路径。
注意:在使用shutil.make_archive时,输出路径应该是压缩文件的路径和名称,而不是目标目录的路径。而在使用shutil.unpack_archive时,输出路径应该是目标目录的路径。
