我想将命令行上的参数限制为 -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,而不是两者的方法。