用 Codex 匯總工時 CSV:先分出異常行,附教學源碼
按月份、項目匯總工時,最容易出問題的往往不是相加,而是把「待確認」、錯誤日期或缺項目的行也混了進去。
這個小工具先分出有效行與異常行,再做匯總。異常保留行號和原因,方便回到原表處理。
先約定哪些行可以相加
示例 CSV 只有日期、項目、小時三個欄位,規則是:
- 日期使用
YYYY-MM-DD,並且是真實存在的日期。 - 項目名稱不能為空。
- 每行小時大於0、不超過24,最多兩位小數。
這些是教學規則,適配自己的記錄時需要重新確認。例如每天的總工時是否有限制、同一天是否允許重複,本例沒有處理。
給 Codex 的任務:
讀取 sample.csv,按上述規則分開有效行和異常行。
有效行按月份、項目匯總,輸出 summary.csv。
異常行輸出 exceptions.csv,保留 CSV 行號與原因。
另外生成瀏覽器可查看的報告。
原檔案唯讀,不自動補值,不覆蓋既有輸出。
用模擬資料核對結果,並驗證異常輸入。
執行與核對
在解壓後的項目目錄執行,輸出目錄需尚不存在:
python -X utf8 summarize_hours.py sample.csv --output output
原樣例有8條模擬記錄,結果為4條有效、4條異常。有效記錄匯總如下:
| 月份 | 項目 | 小時 |
|---|---|---|
| 2026-09 | 項目A | 3.50 |
| 2026-10 | 項目B | 3.50 |
| 合計 | 7.00 |
「待確認」、不存在的日期、超範圍小時與缺項目的行沒有進入總數。檢查報告時同時看匯總和異常兩部分,避免只看到一個好看的總數。
驗收範圍
2026年10月15日的 Windows / Python 3.13.5 執行記錄中,6項測試通過,覆蓋小數、日期、項目、範圍、缺欄與舊輸出保護;原 CSV 校驗不變,報告用本地 Edge 查看。執行腳本不呼叫 API。
樣例全部是模擬資料。格式正確不證明記錄真實,也不代表已經檢查同一天重複或日總工時。本文於2026年10月27日整理,保留原測試範圍,沒有重新執行。任務描述的官方參考見 OpenAI Prompting。
下載包的說明、模擬資料及程式顯示文字均已改為香港繁體中文。
2026年10月28日另行驗證繁體下載版:Windows / Python 3.13.5,6項測試全部通過;8條模擬記錄仍為4條有效、4條異常,合計7.00小時,輸入檔案內容不變。這次核對包括程式及報告 HTML 內容,沒有重新操作瀏覽器。
香港繁體版整理日期:2026年10月28日。原文引用的產品說明核對截至2026年10月27日;原實驗日期與範圍保留於文中。