Python打造高效文件压缩与解压缩工具

在现代数据处理中,文件压缩与解压缩是不可或缺的技能。无论是为了节省存储空间,还是为了加快文件传输速度,掌握这一技术都大有裨益。今天,我们将利用Python强大的库功能,打造一款简易但高效的文件压缩与解压缩工具。

Python打造高效文件压缩与解压缩工具

环境准备

首先,确保你的Python环境已经安装了zipfile和os库。这两个库是Python标准库的一部分,无需额外安装。zipfile库用于处理ZIP文件,而os库则用于文件系统操作。

import zipfile
import os

文件压缩

功能设计

我们的压缩工具需要实现以下功能:

  1. 选择一个文件夹进行压缩。
  2. 生成一个ZIP文件。

代码实现

def compress_folder(folder_path, output_zip):
    # 确保输出文件名以.zip结尾
    if not output_zip.endswith('.zip'):
        output_zip += '.zip'

    # 创建ZIP文件
    with zipfile.ZipFile(output_zip, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                file_path = os.path.join(root, file)
                zipf.write(file_path, os.path.relpath(file_path, folder_path))

    print(f"压缩完成:{output_zip}")

# 示例用法
compress_folder('example_folder', 'compressed_output')

代码解析

  1. 函数定义:compress_folder函数接受两个参数,folder_path为待压缩文件夹路径,output_zip为输出ZIP文件名。
  2. 文件名处理:确保输出文件名以.zip结尾。
  3. ZIP文件创建:使用zipfile.ZipFile创建ZIP文件,并设置压缩模式为ZIP_DEFLATED。
  4. 遍历文件夹:使用os.walk遍历文件夹中的所有文件,并将它们添加到ZIP文件中。
  5. 相对路径处理:使用os.path.relpath确保文件在ZIP中的路径与原文件夹结构一致。

文件解压缩

功能设计

解压缩工具需要实现以下功能:

  1. 选择一个ZIP文件进行解压缩。
  2. 指定解压缩的目标文件夹。

代码实现

def extract_zip(zip_path, output_folder):
    # 确保输出文件夹存在
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 解压缩ZIP文件
    with zipfile.ZipFile(zip_path, 'r') as zipf:
        zipf.extractall(output_folder)

    print(f"解压缩完成:{output_folder}")

# 示例用法
extract_zip('compressed_output.zip', 'extracted_folder')

代码解析

  1. 函数定义:extract_zip函数接受两个参数,zip_path为ZIP文件路径,output_folder为解压缩目标文件夹。
  2. 文件夹检查:使用os.path.exists检查目标文件夹是否存在,若不存在则使用os.makedirs创建。
  3. 解压缩操作:使用zipfile.ZipFile打开ZIP文件,并调用extractall方法将所有文件解压到指定文件夹。

完整工具集成

为了方便使用,我们可以将上述功能集成到一个完整的工具中,并添加一些用户交互功能。

def main():
    while True:
        print("\n1. 压缩文件夹")
        print("2. 解压缩文件")
        print("3. 退出")
        choice = input("请选择操作:")

        if choice == '1':
            folder_path = input("请输入待压缩文件夹路径:")
            output_zip = input("请输入输出ZIP文件名:")
            compress_folder(folder_path, output_zip)
        elif choice == '2':
            zip_path = input("请输入ZIP文件路径:")
            output_folder = input("请输入解压缩目标文件夹:")
            extract_zip(zip_path, output_folder)
        elif choice == '3':
            break
        else:
            print("无效的选择,请重新输入。")

if __name__ == "__main__":
    main()

代码解析

  1. 主函数定义:main函数用于提供用户交互界面。
  2. 循环菜单:通过循环菜单让用户选择操作,并根据选择调用相应的功能函数。
  3. 用户输入:根据用户选择,提示输入必要的路径和文件名。

通过上述步骤,我们成功打造了一款基于Python的文件压缩与解压缩工具。这款工具虽然简单,但功能完备,足以应对日常的文件处理需求。希望这篇文章

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

31阅读

外国教程python,python编程教学视频

2026年09月02日

25阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

27阅读

python教程大全集,python教程600集

2026年09月02日

26阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

22阅读