2017-03-05 88 views
0

我正在使用Python​​通過CLI獲取參數。我已經嘗試使用以下內容,但是當我不給出任何一個參數時,它將輸出作爲None。我想要默認的那個是const=中提供的。請看一下。無法將默認值分配給Python中的參數argparse

parser = argparse.ArgumentParser() 
parser.add_argument('--input', nargs='?', const='testInput') 
parser.add_argument('--target', nargs='?', const='testTarget') 
parser.add_argument('--msg', nargs='?', const='helloFromTheOtherSide') 
args = parser.parse_args() 
print args.input 

如果我沒有提供輸入,它將按照我所說的將其打印爲None。我想它來打印TestInput,而不是..

回答

1

使用default說法:

parser = argparse.ArgumentParser() 
parser.add_argument('--input', nargs='?', default='testInput') 
parser.add_argument('--target', nargs='?', default='testTarget') 
parser.add_argument('--msg', nargs='?', default='helloFromTheOtherSide') 
args = parser.parse_args() 
print args.input 
+0

謝謝,這個工程 – tsaebeht

0

隨着

parser.add_argument('--input', nargs='?', default='testInput', const='aConst') 

你有3雙向選擇

prog     # input='testInput' 
prog --input   # input='aConst' 
prog --input myfile # input='myfile' 

如果你不」 t需要aConst選項,省略nargs='?'。由於它是標記的參數,因此它已經是可選的。它不需要`?'。

parser.add_argument('--input', default='testInput') 
相關問題