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

如何避免shutil.make_archive生成归档时将自身包含在内?

解决shutil.make_archive打包时包含自身归档文件的问题

这个问题的核心原因很明确:你把生成的App-1.0.zip放在了当前工作目录(也就是你传给make_archive的第三个参数.)里,当归档工具遍历当前目录内容时,它会把自己正在创建的这个未完成的zip文件也打包进去,就出现了你看到的48字节的冗余文件。

这里有两个简单直接的解决办法:

方法一:把归档文件输出到当前目录之外

直接指定归档文件的路径到上级目录(或者其他不在当前归档范围内的路径),这样生成的zip就不会被包含进当前目录的遍历中:

import shutil
# 把归档文件生成到Release的上级目录
shutil.make_archive('../App-1.0', 'zip', '.')

方法二:明确指定只打包App目录

利用make_archive的base_dir参数,只把App子目录作为归档内容,而不是整个当前目录。这样当前目录下的其他文件(包括即将生成的zip)都不会被纳入归档范围:

import shutil
# root_dir指定根目录为当前目录,base_dir指定只打包App子目录
shutil.make_archive('App-1.0', 'zip', root_dir='.', base_dir='App')

用这种方法生成的zip,解压后正好就是你想要的App目录,完全符合预期。

内容的提问来源于stack exchange,提问作者Alex P.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:36:12