2

我在python中有以下代码:

group = parser.add_mutually_exclusive_group()
group.add_argument('-a', '--add', dest='name_to_add', help='Add a new group or a role to existing group')
group.add_argument('-u', '--upgrade', dest='name_to_upgrade', help='Upgrade a group with the new version')
group.add_argument('-r', '--remove', dest='name_to_remove', help='Remove a group')
group.add_argument('-l', '--list', dest="list_server_or_group_name", help='Get group or server state/configuration')

我的问题是“-l”选项。我希望能够列出特定组并列出所有组。目前我这样做:

“python my_script.py -l group_name” - 用于列出特定组和“python my_script.py -l all” - 用于列出所有组。

但我想列出所有组:“python my_script.py -l”。我应该如何更改我的代码才能以这种方式运行它?以及如何稍后在代码中检查它?

谢谢,阿尔沙夫斯基亚历山大。

4

1 回答 1

4

这是不可能的optparse

但是,如果您切换optparseargparse(从2.73.2开始),您可以通过nargs='?'

'?'。如果可能,将从命令行使用一个参数,并将其作为单个项目生成。如果不存在命令行参数,则将生成默认值。

group.add_argument('-l', '--list', dest="list_server_or_group_name",
                   help='Get group or server state/configuration',
                   nargs='?', default=None, const='all')
于 2012-08-01T13:38:49.593 回答