我在python程序中遇到了一个问题,我有两个可选参数,问题是这两个参数中必须至少有一个必须使用,但是这两个参数不能一起传递,有没有办法用argparse来实现?在
以下是我当前使用的代码:
parser = argparse.ArgumentParser(description='worker')
arser.add_argument('-i', "--item", type=bool, default=False, required=False)
parser.add_argument('-o', "--offer", type=bool, default=False, required=False)
下面是一些我希望它如何工作的例子:
./main.py -i True
=>;确定
./main.py -o True
=>;确定
./main.py -o True -i True
=>;不正常
我建议您重构参数,并将-o和-I组合成一个强制参数。 然后使用
add_argument
的choices参数将o和i(或任何合适的)定义为允许的值。在例如:
现在用户必须指定其中一个,但不能同时指定这两个。在
一个
mutually_exclusive_group
将为您提供所需的操作,但不能同时提供这两个操作。在但首先,您不希望
type=bool
。bool
是一个函数,它将其输入转换为True
或False
,但不将字符串'False'转换为booleanFalse
。我建议改用action='store_true'
。在如果没有使用},或者两者都不使用,则会引发错误。如果使用其中一个或另一个,它会将适当的属性设置为
-i
或{True
。注意,usage行用(-i | -o)
表示这个“exclusive or”逻辑。在相关问题 更多 >
编程相关推荐