我想要一个包含(例如)三个参数的脚本:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--a",help="Argument a")
parser.add_argument("--b",help="Argument b")
parser.add_argument("--c",help="Argument c")
args= parser.parse_args()
但要确保在任何给定时间只能指定'a','b'或'c',例如你可以指定'a'而不是'b'或'c'这是可能的,我将如何实现它?
答案 0 :(得分:14)
argpase允许您使用add_mutually_exclusive_group()
方法指定它。
import argparse
parser = argparse.ArgumentParser()
g = parser.add_mutually_exclusive_group()
g.add_argument("--a",help="Argument a")
g.add_argument("--b",help="Argument b")
g.add_argument("--c",help="Argument c")
args= parser.parse_args()
答案 1 :(得分:1)
使用上面提到的add_mutually_exclusive_group()
来检查argparse
级别。
如果您希望对错误消息等有更多控制权,您当然可以稍后检查结果:
if len([x for x in args.a, args.b, args.c if x is not None]) > 1:
raise Exception("Not allowed!")