如何限制为两个选项之间的一个选项 - argparse - python 3

how to limit to one option between two - argparse - python 3

我想将命令行上的参数限制为 -d 或 -f。我怎样才能做到这一点?

我可以使用 if 语句轻松完成,但我想以正确的方式完成。

   subparser_post = subparsers.add_parser('post', add_help=False)
    subparser_post.add_argument("-d", '--d')
    subparser_post.add_argument("-f", "--f")

使用 mutually-exclusive 组。

subparser_post = subparsers.add_parser('post', add_help=False)
group = subparser_post.add_mutually_exclusive_group()
group.add_argument("-d", '--d')
group.add_argument("-f", "--f")

如果用户必须使用两个选项之一,请将 required=True 添加到对 add_mutually_exclusive_group 的调用中。

您可以添加互斥组:

import argparse

parser = argparse.ArgumentParser()

group = parser.add_mutually_exclusive_group()
group.add_argument('-a', action='store_true')
group.add_argument('-b', action='store_true')

print parser.parse_args()

这创建了一种只允许 a 或 b 而不是两者的方法。