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

Mac系统zip命令无法自动创建目标子目录生成压缩包问题咨询

问题根因

macOS 原生 zip 命令本身没有自动创建输出文件上层不存在目录的能力,报错是因为你要输出zip的%Y%m%d格式日期目录还未创建,和你传入的参数无关。

代码修复方案

你只需要在定义完日期路径today后,补充判断目录是否存在、不存在则创建的逻辑即可,同时修正原代码中只定义命令字符串、未实际执行命令的问题,修改后的完整代码如下:

# pylint: disable=missing-module-docstring
import os
import time
source = "/Users/bogdan/Downloads/tests/new/"

target_dir = os.path.join(source, "backup")
# 用os.path.join拼接路径更规范,兼容不同操作系统
today = os.path.join(target_dir, time.strftime("%Y%m%d"))
now = time.strftime("%H%M%S")

# 创建backup根目录
if not os.path.exists(target_dir):
    os.mkdir(target_dir)
    print("Created backup dir")

# 新增:创建当天日期的子目录
if not os.path.exists(today):
    os.mkdir(today)
    print("Created date subdir")

target = os.path.join(today, now + ".zip")

zip_command = f"zip -qr {target} {source}"
print(zip_command)
# 执行zip命令
os.system(zip_command)

终端直接执行zip的解决办法

如果要直接在终端执行命令,可以先调用mkdir创建对应目录再执行zip,用&&连写即可:

mkdir -p /Users/bogdan/Downloads/tests/new/backup/20210922 && zip -qr /Users/bogdan/Downloads/tests/new/backup/20210922/123228.zip /Users/bogdan/Downloads/tests/new

其中mkdir -p参数可以自动创建多级不存在的目录,就算上层目录不存在也不会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:09:03