换个目录就找不到文件
场景:一个小报表脚本在自己的目录里运行一切正常,但放进定时任务、或者从别的目录调用时,总是报 FileNotFoundError。 任务:改 ~/work/report/report.py,让它从任何目录运行都能读到它旁边的 prices.
输出目录建不出来
场景:一个按类别拆分订单的脚本,第一次运行成功;可是目录一深就建不出来,再跑一次还报「已存在」,就算绕过去文件里也会重复。 任务:改 ~/work/split.py:多层输出目录自动建好、重跑不报错、重跑后文件内容和跑一次完全一样。chec
第一个命令行参数
运行 python3 calc.py add 3 5 时,sys.argv[1] 是【0】。
用法错了退几
命令行工具发现「用法不对」时,按惯例退出码是【0】。
参数解析与退出码
补全 main(argv):返回 (输出文字, 退出码)。用法 运算 整数 整数,运算只有 add / mul;参数个数不对、运算名不认识、不是整数,一律返回 ("用法错误", 2);否则返回结果字符串和 0。
四则运算命令行工具
场景:团队需要一个能被别的脚本调用的计算小工具:调用方不仅看它的输出,还要靠退出码判断成功还是失败。 任务:新建 ~/work/calc.py:python3 calc.py 运算 整数 整数,运算为 add/sub/mul/div(div
用 argparse 加选项
场景:一个列成绩的小脚本只能全部打印。老师想要「前几名」「只看及格的」「倒着排」这些选项。 任务:改 ~/work/top.py,用 argparse 加上 --top N(默认 5)、--min M、--reverse。分数相同按姓名字典
traceback 从哪读起
Python 3 的 traceback 里,真正出错的那一行通常在【0】。
两段报错看哪一段
traceback 中间出现 The above exception was the direct cause of the following exception 时,最早出错的地方在【0】。
坏数据跳过不崩
逐行处理订单:数量不是整数、或商品不存在,都跳过并计数;否则把 单价×数量 加进合计。输出 合计/跳过数。