命令行解析库(docopt、argparse)

最近看源码中出现了两个命令行解析库,在这里记一下笔记。

docopt:第三方的库。

推荐网站:https://xuanwo.org/2016/04/04/docopt-intro/

argparse:python自带的库。

推荐网站:https://blog.ixxoo.me/argparse.html


docopt简单介绍

这个模块用法只需要在.py文件开头添加形如如下示例的注释

"""Usage:
  pip-diff (--fresh | --stale) <reqfile1> <reqfile2> [--exclude <package>...]
  pip-diff (-h | --help)

Options:
  -h --help     Show this screen.
  --fresh       List newly added packages.
  --stale       List removed packages.
"""

然后代码中调用,便可以获得一个字典,字典中存储了上面实例中出现的参数。

args = docopt(__doc__, version='pip-diff')

这个字典的内容形如下方示例。

{
'--freash':False,
'--stale':False,
'<reqfile1>':None,
'<reqfile2>':None,
'<package>':None,
'--excludes':False
    }

小知识点

1、括号的使用

括号中带的参数表示必须要出现,是必填项

2、 | 号(分割符)的使用

(--fresh | --stale )像这样的,表示必须出现前者或者后者。|就代表or

3、形如element...

这个表示这里可以输入多个参数,如果要访问的话可以使用 args['<element>']

4、默认值

如果想要哪个option有默认值的话,可以使用 --stale [default:test]



argparse简单介绍

python自带的命令行解析库。使用上没有上面的库那么的方便。

parser = argparse.ArgumentParser(description=__description__)
    parser.add_argument(
        '-V', '--version', dest='version', action='store_true',
        help="show version")
    parser.add_argument(
        'testset_paths', nargs='*',
        help="testset file path")

如果想要获取命令行参数,则需要形如下方的语句

args = parser.parse_args()
    logger.setup_logger(args.log_level)

    # 如果接收到 -v 或者--version打印版本
    if args.version:
        logger.color_print("{}".format(__version__), "GREEN")
        exit(0)

小知识点

1、help

add_argument(help='Hello World')

这个参数主要是写入这个命令的帮助信息

2、action

add_argument(action=action_store)

表示这个参数存在则为True,不存在则为False

3、nargs

add_argument(nargs=‘*’)

表示可以接受多个参数,并把多个参数存在一个列表中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值