交付时要给用户看什么
工具跑完,除了结果文件,还该打给用户看的一句话是【0】。
整套工具跑一遍
下面是组装好的 dtool 精简版:读、清洗、汇总、写 CSV。运行它,看报告和结果: import csv, io SALES = ("date,store,item,qty,price\n2026-09-01,东门,包子,1
第一步:读进来
补全 read_rows:从文本读成字典列表;文本为 None 交回 None。输出正常读的条数和 None 的结果。
第二步:清洗
补全 clean:去空白 → 空数量当 0 → 去重 → 转类型(坏行记行号)。输出好行数和坏行号。
第三步:汇总成表
补全 summarize:按 key 分组求金额,交回按总额降序的 [{key: …, "total": …}] 列表。输出按 store 的第一行和按 date 的组数。
第四步:接上 main
补全 main:读不到交回 4、缺列交回 6、否则清洗 → 汇总 → 写(写进 out)→ 报告写进 msg,交回 0。输出三次调用的退出码和最后一次的报告。
交付:五条验收条款一起过
run(text, by) 已经给好:交回 (退出码, 结果文本, 报告)。补全五条验收:正常退出码 0、结果 4 行、报告说跳过第 7 行、打不开交回 4、缺列交回 6。输出五个 1/0。
一批文件和一个文件差在哪
真机上要处理的是一个目录里的八份记录,而不是一份。这时最容易出、也最难看出来的问题是【0】。
先把八个文件的批量循环写出来
真机上会对目录里的每个 .csv 各跑一次。先在这里把「按名字排序、只取 .csv、逐个处理」的骨架跑通: names = ["西线.csv", "说明.txt", "东线.csv"
哪个文件坏行最多
场景:实验机的 data/ 里有八份销售记录,家目录里有清洗工具 dtool.py(用 python3 运行)和一份对照表——每个文件名配一个标记。 任务:找出坏行最多的那个文件,到对照表里查它对应的标记。坏不坏以工具的判定为准:数值两边带