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

用Python编写的简单文件压缩工具

发布时间:2023-12-04 12:48:01

以下是一个用Python编写的简单文件压缩工具的代码示例:

import zipfile
import os

def compress_folder(folder_path, output_path):
    """
    压缩指定文件夹内的所有文件和子文件夹
    :param folder_path: 要压缩的文件夹路径
    :param output_path: 压缩文件的输出路径
    """
    with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for foldername, subfolders, filenames in os.walk(folder_path):
            for filename in filenames:
                filepath = os.path.join(foldername, filename)
                zipf.write(filepath, os.path.relpath(filepath, folder_path))

def extract_zipfile(zipfile_path, output_path):
    """
    解压缩指定的压缩文件到指定的输出路径
    :param zipfile_path: 要解压缩的压缩文件路径
    :param output_path: 解压缩文件的输出路径
    """
    with zipfile.ZipFile(zipfile_path, 'r') as zipf:
        zipf.extractall(output_path)

# 使用例子
if __name__ == '__main__':
    # 压缩文件夹
    folder_path = 'D:/example_folder'  # 要压缩的文件夹路径
    output_path = 'D:/compressed.zip'  # 压缩文件的输出路径
    compress_folder(folder_path, output_path)
    
    # 解压缩文件夹
    zipfile_path = 'D:/compressed.zip'  # 要解压缩的压缩文件路径
    output_path = 'D:/extracted_folder'  # 解压缩文件的输出路径
    extract_zipfile(zipfile_path, output_path)

使用该文件压缩工具非常简单,只需要调用compress_folder()函数压缩指定的文件夹,或者调用extract_zipfile()函数解压缩指定的压缩文件。在使用例子中,只需将folder_pathoutput_path替换为实际的文件夹路径和输出路径即可。

该脚本利用Python的zipfile模块来进行压缩和解压缩操作。compress_folder()函数使用with zipfile.ZipFile()来创建一个Zip文件,并使用zipf.write()方法将文件夹中的所有文件和子文件夹添加到压缩文件中。extract_zipfile()函数使用with zipfile.ZipFile()来打开压缩文件,并使用zipf.extractall()方法将压缩文件解压缩到指定的输出路径中。

该脚本还使用了Python的os模块来处理文件和文件夹路径,使用os.walk()遍历文件夹中的所有文件和子文件夹,并使用os.path.join()os.path.relpath()来构建文件的相对路径。