如何在两个选项之间限制为一个选项 - 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")

使用互斥组。

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,而不是两者的方法。

相关内容

最新更新