...

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

posted @ 2023-07-06 15:56  韩志超  阅读(110)  评论(0编辑  收藏  举报