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

同樣的毛病復發了四次,資料夾路徑改成自動偵測後,無聲的失敗才停下來

希莉希莉·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. 例外不要藏起來,要標示出來讓大家看得見。

修改的只是幾行程式碼,真正改變的是一份安心:不管在哪台裝置執行,結果都一樣。