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

OS X系统下Python备份脚本正确路径配置方法

报错根因

你踩了三个新手跨系统抄代码的典型错误,和你之前反复试路径分隔符的操作没关系,都是硬语法和系统适配问题:

  • zip命令格式完全写错。原示例里zip -qr是「zip命令 + 空格 + qr参数」结构,你写的zip-qr{0}{1}把命令、参数、文件路径全粘成了连续字符串,系统根本找不到名为zip-qrxxxx的可执行程序,直接触发"No such file or directory"报错。
  • 路径分隔符适配错误。OS X是类Unix系统,原生路径分隔符只能用正斜杠/,你第二个版本里照搬Windows的反斜杠\写路径是完全错误的——反斜杠在Unix Shell里是转义字符,会把后面跟随的字母解析为特殊字符,根本识别不到正确路径。你之前尝试/、//、\等写法属于无效试错,Windows的反斜杠规则在Mac上完全不适用。
  • 未提前创建备份存储目录。zip命令不会自动生成不存在的父文件夹,如果你配置的/Users/yaroslav_skripnik/backup目录没有提前手动创建,写入压缩包时同样会报路径不存在错误。
修正后可直接运行的代码
import os
import time

# 要备份的源文件/文件夹路径列表,Mac下直接用正斜杠写绝对路径即可
source = ['/Users/yaroslav_skripnik/notes']
# 备份文件存储目录
target_dir = '/Users/yaroslav_skripnik/backup'

# 自动创建备份目录,目录已存在时不会报错
os.makedirs(target_dir, exist_ok=True)

# 拼接压缩包完整路径,os.sep会自动适配当前系统的路径分隔符
target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip'

# 注意命令各部分之间必须留空格:zip 空格 -qr 空格 压缩包路径 空格 源路径
zip_command = "zip -qr {0} {1}".format(target, ' '.join(source))

print('执行的命令为:', zip_command)
# 执行备份逻辑
if os.system(zip_command) == 0:
    print('备份成功,文件存储路径:', target)
else:
    print('备份失败')
前置校验步骤

如果跑代码还是报错,按以下顺序排查:

  • 打开终端执行which zip,如果返回类似/usr/bin/zip的路径,说明系统自带zip命令行工具可用;如果没有返回,先安装命令行zip工具
  • 验证源路径有效性:打开访达按下Shift+Command+G,粘贴你写的源路径回车,能正常打开对应文件夹就说明路径配置正确
  • 如果路径里包含带空格的文件夹名,给对应路径外层套上单引号再拼接命令即可,不需要照搬Windows的双引号转义写法

内容的提问来源于stack exchange,提问作者Ярослав Скрипник

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:57:21