2017-03-05 6 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として印刷します。 「あなたはドン場合は、3ウェイ選択

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

を持って

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

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 

答えて

1

default引数を使用します..それは代わりにTestInputを印刷したいですaConstオプションが必要な場合は、nargs='?'を省略してください。これはフラグ付きの引数であるため、すでにオプションです。 `? 'は必要ありません。

parser.add_argument('--input', default='testInput') 
+0

ありがとうございます – tsaebeht

関連する問題