使用Docopt添加命令行参数
docopt是一个Python三方库,用于解析命令行参数。它提供了一种简单而灵活的方式来定义命令、参数和选项,并生成帮助信息。
安装方法#
pip install docopt
基础示例#
"""
Calc
Usage:
cli.py <method> (-a <a>) (-b <b>)
cli.py -h | --help
Options:
-a variable a
-b variable b
-h --help calc add and sub
"""
from docopt import docopt
def main():
args = docopt(__doc__)
print(args)
method = args['<method>']
a, b = int(args["-a"]), int(args["-b"])
if method == 'add':
print(f'{a} + {b} =', a + b)
elif method == 'sub':
print(f'{a} + {b} =', a + b)
if __name__ == '__main__':
main()
查看帮助信息
Calc
Usage:
cli.py <method> (-a <a>) (-b <b>)
cli.py -h | --help
Options:
-a variable a
-b variable b
-h --help calc add and sub
使用参数
$ python cli.py add -a 1 -b 2
{'--help': False,
'-a': '1',
'-b': '2',
'<method>': 'add'}
1 + 2 = 3
添加位置参数#
Usage:
cli.py <arg1> <arg2>
注意:从args字典中获取参数时,参数的key为带尖括号的
'<arg1>'
和'<arg2>'
添加选项参数#
Usage:
cli.py -a=<a> -b=<b>
或
Usage:
cli.py --var_a=<a> --var_b=<b>
参数结果为字符串格式,参数使用方式如下:
-
使用短参时,应使用
python cli.py -a1 -b2
python cli.py -a 1 -b 2
-
使用长参数时,可使用
python cli.py --var_a=1 --var_b=2
python cli.py --var_a 1 --var_b 2
注意: 使用短参时,如果使用
python cli.py -a=1 -b=2
得到的a和b会多一个=号。
选项参数支持用不同的支持一些限定描述
[]
:描述可选元素(optional)()
:描述必要元素(required)|
:描述互斥元素(mutually exclusive)...
:描述重复元素(repeating)
添加子命令#
Usage:
cli.py add -a <a> -b <b>
cli.py sub -a <a> -b <b>
使用并输出args示例如下
python cli.py add -a 1 -b 2
{'--help': False,
'-a': '1',
'-b': '2',
'add': True,
'sub': False}
更多用法可参考:https://github.com/docopt/docopt
作者:韩志超
出处:https://www.cnblogs.com/superhin/p/python-docopt.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
如有问题,请微信联系 superz-han,并发送原文链接。
合集:
Python命令行参数
/* 请我喝杯咖啡吧 */
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2021-07-06 Pytest使用pytest.ini实现环境变量控制
2020-07-06 macOS搭建Selenium Grid
2020-07-06 macOS使用Selenium测试Opera浏览器
2020-07-06 macOS使用Selenium测试新版Edge浏览器
2020-07-06 macOS使用Selenium操作Firefox浏览器
2020-07-06 macOS使用Selenium操作Safari浏览器