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

环境准备
首先,确保你的Python环境已经安装了zipfile和os库。这两个库是Python标准库的一部分,无需额外安装。zipfile库用于处理ZIP文件,而os库则用于文件系统操作。
import zipfile
import os
文件压缩
功能设计
我们的压缩工具需要实现以下功能:
- 选择一个文件夹进行压缩。
- 生成一个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')
代码解析
- 函数定义:
compress_folder函数接受两个参数,folder_path为待压缩文件夹路径,output_zip为输出ZIP文件名。 - 文件名处理:确保输出文件名以
.zip结尾。 - ZIP文件创建:使用
zipfile.ZipFile创建ZIP文件,并设置压缩模式为ZIP_DEFLATED。 - 遍历文件夹:使用
os.walk遍历文件夹中的所有文件,并将它们添加到ZIP文件中。 - 相对路径处理:使用
os.path.relpath确保文件在ZIP中的路径与原文件夹结构一致。
文件解压缩
功能设计
解压缩工具需要实现以下功能:
- 选择一个ZIP文件进行解压缩。
- 指定解压缩的目标文件夹。
代码实现
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')
代码解析
- 函数定义:
extract_zip函数接受两个参数,zip_path为ZIP文件路径,output_folder为解压缩目标文件夹。 - 文件夹检查:使用
os.path.exists检查目标文件夹是否存在,若不存在则使用os.makedirs创建。 - 解压缩操作:使用
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()
代码解析
- 主函数定义:
main函数用于提供用户交互界面。 - 循环菜单:通过循环菜单让用户选择操作,并根据选择调用相应的功能函数。
- 用户输入:根据用户选择,提示输入必要的路径和文件名。
通过上述步骤,我们成功打造了一款基于Python的文件压缩与解压缩工具。这款工具虽然简单,但功能完备,足以应对日常的文件处理需求。希望这篇文章
« 上一篇
Python网络编程基础:搭建简易聊天室
下一篇 »
Python自动化测试入门教程