...

使用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,并发送原文链接。

posted @   韩志超  阅读(142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需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浏览器
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu