症状:没有报错,也没有结果
我们把在 Windows 设备上顺利运行好几周的脚本搬到了 Mac mini。结果没有任何报错信息,也没有产出任何成果。通知很安静,日志是空的。这是最可怕的一类故障。
原因:一行写死的完整文件夹路径
脚本里直接写着以盘符开头的文件夹路径。我们团队同时使用 Windows 设备、家里的电脑和 Mac mini 三台,每台的文件夹路径都不一样。遇到不存在的文件夹时,脚本会判断「没有要处理的文件」然后正常结束。这个毛病一个月内发生了四次。
解法:不要背路径,让脚本问自己在哪里
• **Before**:直接写死文件夹路径,换设备就要人工修改
• **After**:由一个公共模块根据脚本当前所在位置,自动找出基准文件夹
from device_paths import BASE, repo
data_dir = repo("articles") / "data"
只有真正限定某台设备使用的那几行,才用「有意例外」注释来豁免。
安全网:统计剩余数量的监控
每次同步时,检查脚本都会汇报剩余的写死路径数量。数字减少说明整理顺利,数字增加就是新代码里混进了旧习惯的警报。
结果
• 同类事故:每月 4 次 → 0 次
• 新设备配置:逐个文件修改路径 → 同步后直接运行
• 静默失败:变成看得见的检查数字
没有报错不代表成功。对非开发者的小团队来说,先堵住「悄悄坏掉的洞」,日子会安心很多。