2
我已經添加了一個參數-c,現在我想添加另一個名爲-ca的參數。如何將-ca的默認值設置爲-c?我想要做的是,如果沒有指定-ca,則將-c指定爲-ca。Python Argparse - 將參數的默認值設置爲另一個參數
parser.add_argument("-c", type=str)
parser.add_argument("-ca", type=str, default=XXX)
謝謝。
我已經添加了一個參數-c,現在我想添加另一個名爲-ca的參數。如何將-ca的默認值設置爲-c?我想要做的是,如果沒有指定-ca,則將-c指定爲-ca。Python Argparse - 將參數的默認值設置爲另一個參數
parser.add_argument("-c", type=str)
parser.add_argument("-ca", type=str, default=XXX)
謝謝。
通常,單個短劃線標誌是單個字符。所以-ca
是不明智的,但不是非法的。在正常的POSIX實踐中,它可以被解釋爲-c a
或-c -a
。
另外允許標記參數(optionals
)以任何順序發生。
解析從分配所有默認值開始。遇到相關標誌時,新值將覆蓋默認值。根據該順序,一個參數不可能將另一個參數的值作爲默認值。
一般來說,參數之間的交互最好在解析後處理。有一個mutually_exclusive
分組,但沒有mutually_inclusive
。您可以通過自定義類Action
進行某種交互,但實現這一點與任何解析後測試一樣有效。
總之,最簡單的做法是使用默認default
,None
和測試
if args.ca is None:
args.ca = args.c
如果沒有指定'-ca',然後'-c'應該分配給'-ca',但如果沒有指定'-c'和'-ca',那麼? – Haranadh
在這種情況下,您可以假定-c是強制性的。 – Allen
在讀取數據到arg-parse並在從argparse對象讀取之後處理它?問題是什麼,?只是好奇地問。我會嘗試寫樣本並更新你。 – Haranadh