如何对互斥群进行论证?



我有一个互斥组,用户可以从--execute, --delete, --create中选择。我怎样才能使论点只适用于特定的群体?例如:--execute {filename}--create -fn {filename} -p {path}--delete {filename}。如何对可选参数进行分组,使它们只能在特定的组中使用?

三个选项"--execute,--delete--create看起来应该是子命令,而不是可选旗帜。

使用ArgumentParser.add_subparsers()

from argparse import ArgumentParser

parser = ArgumentParser()
sub = parser.add_subparsers()
execute = sub.add_parser('execute')
execute.add_argument('filename')
create = sub.add_parser('create')
create.add_argument('-fn')
create.add_argument('-p')

用法为

  • program execute {filename}
  • program create -fn {filename} -p {path}

您甚至可以为子解析器创建别名:

sub.add_parser('execute', aliases=['e'])

这也允许你像这样调用程序:

  • program e {filename}

注意:

不可能使用--execute-e作为子解析器的命令,因为当输入program --execute {filename}时,--execute部分被解释为根解析器的标志,而不是子命令。

相关内容

  • 没有找到相关文章

最新更新