【发布时间】:2015-06-30 17:51:06
【问题描述】:
所以我正在尝试使用 argparse 库提出一个策略。
这是我想与我的程序交互的方式:
$ program list [<number>]
$ program check <name>
$ program watch <name> [<quality>]
现在我有一个参数解析器,如下所示:
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument('list')
group.add_argument('check')
group.add_argument('watch')
但是如何向现有参数添加可选参数,比如整数?
意味着用户可以通过以下方式调用 list 命令:
program list
使用默认值调用列表操作的位置,或者:
program list 10
将使用参数 10 调用列表操作。
我在文档中看到了 subcommands 选项,但我遇到了一个问题,即我有一个用于列表参数的子解析器,但是我必须添加一个标志,例如 -n,然后提供数字。也许这是一种更好的方法?但我喜欢这样的想法,如果你愿意就提供这个数字,或者如果你不想就省略它。
我正在努力实现良好的实践吗? argparse 可以吗?
【问题讨论】: