← 文章列表
小窝文章 · 案例

同样的毛病复发了四次,文件夹路径改成自动检测后,无声的失败才停下来

希莉希莉·2026-10-09
小窝文章 #412

同样的毛病复发了四次,文件夹路径改成自动检测后,无声的失败才停下来

把文件夹位置直接写死在脚本里,换一台设备就会毫无报错地悄悄失效。这是用一个自动检测基准路径的模块,加上残留数量监控,终结重复故障的记录。

希莉

希莉

希莉

🪺 Bella 的小窝文章

症状总是一样

在家里运行脚本,没有任何报错,却什么事也没发生。通知机器人很安静,晚间整理流程只留下空白结果。原因每次都相同:在 Windows 设备上开发时,把文件夹位置原封不动写进了代码。

我们的环境

设备共有三台:盘符各不相同的两台 Windows 设备,加上一台 Mac mini。在一处运行良好的脚本,到了另一处却盯着一个根本不存在的文件夹。偏偏它没有任何异常就正常结束,连称它失败都显得牵强。同样的事故就这样重复了四次。

Before

• 文件夹路径直接写在代码里

• 换一台设备运行,就读到空文件夹并悄悄结束

• 出事时只能逐个文件修补,修完就算了

After

我们写了一个公共模块,从脚本自身所在位置推算基准文件夹,所有脚本都只引用它。

from pathlib import Path

BASE = Path(__file__).resolve().parent.parent

def repo(name):

return BASE / name

设备换了也没关系,因为一律以脚本所在位置为准,盘符不再重要。真正必要的例外,则用一行注释标明豁免。

同时加上监控

每次同步时,一个小型检查脚本会统计还残留几行写死的路径并汇报。数字减少说明整理有进展,数字增加就是有新的写死路径混进来的警报。

学到的事

1. 与其订下「不许这样写」的规矩,不如让工具用数字替你计数,效果更持久。

2. 没有报错就结束的失败,代价最高。

3. 例外不要藏起来,要标明出来让大家看得见。

改动的只是几行代码,真正改变的是一份安心:不管在哪台设备上运行,结果都一样。