在這個問題上蟒蛇argparse add_argument_group需要
argparse:或者需要兩個參數
我找到我想要的解決方案的參考,但它是不正確的。
我需要2的至少1選項存在,選項1,選項2或兩者...
的add_argument_group函數不具有必需的參數。 add_mutually_exclusive函數有它,但它迫使我在2個選項之間進行選擇,這不是我想要的。
RDS,
在這個問題上蟒蛇argparse add_argument_group需要
argparse:或者需要兩個參數
我找到我想要的解決方案的參考,但它是不正確的。
我需要2的至少1選項存在,選項1,選項2或兩者...
的add_argument_group函數不具有必需的參數。 add_mutually_exclusive函數有它,但它迫使我在2個選項之間進行選擇,這不是我想要的。
RDS,
argument_group
只是控制幫助顯示。它不會影響解析或檢查錯誤。 mutually_exclusive_group
影響使用情況顯示和發生的測試,但正如您所注意到的,其邏輯不是您想要的。
有一個Python錯誤問題,要求某種形式的嵌套'包容性'組。但是允許嵌套和所有版本和/或/異或邏輯的一般形式並不是一個簡單的補充。
我認爲你最簡單的解決方案是在解析後測試args
。如果錯誤的組合錯誤,則引發錯誤。
假設兩個參數的默認值是None
:
if args.option1 is None and args.option2 is None:
parser.error('at least one of option1 and option2 is required')
什麼是有意義的使用習慣? required mutually exclusive' uses
(OPT1 | OPT2).
(OPT1 & OPT2)might indicate that both are required. Your case is a
非排他性或`
usage: PROG [-h] (--opt1 OPT1 ? --opt2 OPT2)