You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python创建无目录层级ZIP文件的技术问题求助

解决Python生成ZIP文件时去除内部目录层级的问题

你当前的代码会把原文件的完整路径保留在ZIP包里,要实现只存文件不带目录,只需要给zip.write()方法指定arcname参数,用文件名替代完整路径即可。

修改后的代码

import time
import os
from zipfile import ZipFile

name = time.strftime("%Y%m%d-%H%M%S")
name = '../models/' + str(name) + '.zip'
with ZipFile(os.path.abspath(name), 'w') as zip:
    # 注意变量名修正为files(原代码里的filies是拼写错误)
    for file in files:
        # 用os.path.basename提取纯文件名,作为ZIP内的存储名称
        zip.write(file, arcname=os.path.basename(file))
# with上下文管理器会自动关闭ZipFile对象,无需手动调用close()

关键说明

  • os.path.basename(file)会从完整路径中提取出文件名,比如/users/me/desktop/project/file.png会被处理成file.png,这样ZIP内部就只会保留这个纯文件名,不会带任何目录层级。
  • 原代码里的zip.close()是多余的,with语句会在代码块结束后自动关闭ZipFile对象,避免资源泄漏。
  • 如果你的files列表里存在重名文件,后添加的文件会覆盖先添加的,若需要避免这种情况,可以给重名文件添加前缀/后缀(比如加时间戳、序号)。

内容的提问来源于stack exchange,提问作者vedsil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:25:28