使用argparse添加第一组与第一组完全互斥的参数

时间:2013-08-04 19:07:17

标签: python argparse

我想知道是否可以使用argparse为我编写的用于发出REST请求的脚本添加一个功能。目前的使用效果很好,看起来像这样:

$./prog.py -h
usage: prog.py [-h] [--headers [HEADER [HEADER ...]]]
                  [--queryparams [QUERY [QUERY ...]]] [--body [BODY]]
                  [METHOD] URL

我用这样的东西得到了这个用法:

parser = argparse.ArgumentParser()

position = self.parser.add_argument_group(
    title='Positional arguments',
    description='The only required argument is URL.'
)

position.add_argument(...)
position.add_argument(...)

我想要做的是添加第二组参数,这些参数与第一组完全互斥。

第二组的用法如下所示:

$./prog.py -h
usage: restcli.py [-h] request {refresh,update}

也就是说,如果request是第一个参数,则唯一有效的选项是refreshupdate。如果request不是第一个参数,则假设我们正在处理原始用法。

我认为对于subparsers我几乎可以做到这一点,但它需要一个关键字来指定我想要原始的非请求解析器。在这种情况下的用法可能如下所示,但我想尽可能避免使用original关键字:

$ ./prog.py -h
usage: prog.py [-h] {orignal,request} 

提前感谢您提供的任何帮助。

0 个答案:

没有答案