python编程

python_打包文件夹到 ZIP 文件

2025-04-11  本文已影响0人  zip11

打包文件夹到 ZIP 文件

打包当前用户 Downloads 文件夹内的 pt 文件夹到 ZIP 文件,ZIP 文件名为 pt_YYYY_MM_DD.zip,保存路径通过变量定义,无用户交互。以下是 Python 脚本:

import os
import zipfile
from datetime import datetime
import pathlib

# 定义源文件夹(当前用户的 Downloads 文件夹内的 pt 文件夹)
downloads_path = os.path.expanduser("~/Downloads")
source_folder = os.path.join(downloads_path, "pt")

# 定义目标 ZIP 文件路径,文件名包含当前年月日
current_date = datetime.now().strftime("%Y_%m_%d")
zip_file = f"C:/Example/Output/pt_{current_date}.zip"  # 例如 C:/Example/Output/pt_2025_04_12.zip

# 确保源文件夹存在
if not os.path.exists(source_folder):
    print(f"错误:源文件夹 {source_folder} 不存在!")
    exit(1)

# 确保目标 ZIP 文件的目录存在
zip_folder = os.path.dirname(zip_file)
if not os.path.exists(zip_folder):
    os.makedirs(zip_folder, exist_ok=True)

# 打包文件夹到 ZIP
try:
    with zipfile.ZipFile(zip_file, 'w', zipfile.ZIP_DEFLATED) as zipf:
        # 遍历源文件夹中的所有文件和子文件夹
        for root, _, files in os.walk(source_folder):
            for file in files:
                file_path = os.path.join(root, file)
                # 计算文件在 ZIP 中的相对路径
                arcname = os.path.relpath(file_path, source_folder)
                zipf.write(file_path, arcname)
    print(f"成功打包 {source_folder} 到 {zip_file}")
except Exception as e:
    print(f"打包失败:{e}")

转换说明:

  1. 源文件夹
    • 使用 os.path.expanduser("~/Downloads") 获取当前用户的 Downloads 文件夹路径(跨平台兼容,例如 Windows 上为 C:\Users\用户名\Downloads)。
    • 使用 os.path.join 拼接路径,指向 pt 文件夹(例如 C:\Users\用户名\Downloads\pt)。
  2. ZIP 文件名
    • 使用 datetime.now().strftime("%Y_%m_%d") 获取当前日期,格式为 YYYY_MM_DD(例如 2025_04_12)。
    • ZIP 文件路径设为 C:/Example/Output/pt_YYYY_MM_DD.zip(例如 C:/Example/Output/pt_2025_04_12.zip)。
  3. 路径检查
    • 检查 pt 文件夹是否存在,若不存在则报错退出。
    • 使用 os.makedirs 确保 ZIP 文件的保存目录存在。
  4. 打包逻辑
    • 使用 zipfile.ZipFile 创建 ZIP 文件,模式为 'w'(写入),压缩方式为 ZIP_DEFLATED
    • 使用 os.walk 遍历 pt 文件夹中的所有文件,保持文件夹结构写入 ZIP。
    • arcname 确保 ZIP 内部路径是相对路径(不包含完整的源路径)。
  5. 错误处理
    • 使用 try-except 捕获打包过程中的异常并输出错误信息。
  6. 路径格式
    • 使用 / 作为路径分隔符,Python 会自动处理为 Windows 的 \

使用方法:

  1. 确保 Python 已安装(推荐 3.6+)。
  2. 确保 Downloads 文件夹内有 pt 文件夹(例如 C:\Users\用户名\Downloads\pt)。
  3. 修改 zip_file 的目录部分(C:/Example/Output)为你希望的保存路径(如果需要)。
  4. 保存脚本为 .py 文件(例如 zip_pt.py)。
  5. 运行脚本(例如 python zip_pt.py)。

脚本会自动打包 pt 文件夹到指定路径的 ZIP 文件,文件名包含当前日期(例如 pt_2025_04_12.zip)。如果需要调整(例如添加压缩级别或排除文件),请告诉我!

上一篇 下一篇

猜你喜欢

热点阅读