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

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时,输出路径应该是目标目录的路径。