编写Python程序良好用法输出的最佳实践及argparse示例请求
用法提示规范说明
你自己构思的写法完全符合行业通用的POSIX命令行用法约定,不存在不合理的问题:
- 不带方括号的部分为必填参数
- 用方括号
[]包裹的部分为可选参数 - 短选项(如
-s1)后紧跟对应参数值是通用标准写法
针对你的场景,更推荐带占位符标识的提示写法,可读性更高:
Usage: py someProgram.py -s1 <SOMETHING1> [-s2 <SOMETHING2>] 参数说明: -s1 <SOMETHING1> 必填,第一个业务参数 -s2 <SOMETHING2> 可选,第二个业务参数,默认值为XXX
用尖括号<>包裹参数占位符,可以更清晰地区分选项名和参数值。
argparse实现示例
使用Python标准库的argparse可以自动生成符合规范的用法提示,也支持直接通过属性访问参数值,无需手动解析sys.argv,完全符合你的需求,示例代码如下:
import argparse def main(): # 初始化参数解析器,自动支持-h/--help查看帮助 parser = argparse.ArgumentParser(description="你的程序功能说明会显示在帮助信息开头") # 添加必填的-s1参数,dest指定属性名,required设为True表示必填 parser.add_argument("-s1", required=True, dest="u", help="第一个必填业务参数") # 添加可选的-s2参数,可设置默认值 parser.add_argument("-s2", dest="s2", help="第二个可选业务参数", default="默认填充值") # 解析所有传入参数 args = parser.parse_args() # 直接通过属性获取参数值,这里args.u就能拿到-s1后传入的参数 print("s1参数值:", args.u) print("s2参数值:", args.s2) # 后续写你的业务逻辑即可 if __name__ == "__main__": main()
实现效果
- 运行
py someProgram.py -h会自动输出规范的帮助信息,包含用法提示和每个参数的说明 - 漏填必填的
-s1参数时,程序会自动输出错误提示和用法信息,无需手动编写判断逻辑 - 无需额外处理即可实现“参数绑定”需求,直接通过
args.u就能获取-s1对应的值 - 传入
-s2时取传入值,未传入时自动使用设置的默认值
内容的提问来源于stack exchange,提问作者Wahalez
相关产品推荐
相关产品推荐

