使用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