← 全部文章

技术与生活 / 一篇记录

命令行脚本也需要一个清楚的接口

命令行入口应对参数类型与缺省值给出明确约束。

参数解析不仅是把字符串取出来,还包括类型、默认值和错误提示。argparse 可以统一生成帮助信息,让脚本在参数错误时尽早结束,而不是运行到中间才失败。

从一个例子看起

以下示例使用 Python 3,文件路径和输入值均为练习样本。

import argparse
p = argparse.ArgumentParser()
p.add_argument('--count', type=int, default=1)
print(p.parse_args([]).count)

测试整数、非法字符串和 –help。

排查时再往前走一步

设计默认值时考虑是否会意外处理过多数据。对危险或成本较高的任务,明确要求目标参数通常比悄悄选取一个默认目录更合适。

参数解析完毕之后,可以立即做一轮业务前置检查:输入是否可读、输出位置是否合理、数量是否在允许范围。尽早失败能减少无效工作,也让调用者更快看到可执行的提示。

参数校验通过后,文件权限和业务约束仍需分别验证。

参考:Python 文档。

搜索文章

输入关键词,找回一篇记录。