我想要一个具有(例如)三个参数的脚本:
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”,这可能吗?我将如何实现它?
argparse
允许您使用 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()
已经使用上面提到的
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!")