2017-03-05 6 views
0

Ich benutze Python argparse, um Parameter über die CLI aufzunehmen. Ich habe versucht, das Folgende zu verwenden, aber wenn ich keines der Argumente gebe, gibt es die Ausgabe als None. Ich möchte dann standardmäßig diejenigen, die in zur Verfügung gestellt werden. Bitte schau es dir an.Konnte keine Standardwerte zu Argumenten in Python zuweisen 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 

Wenn ich Eingabe nicht geben, er druckt es als None wie ich sagte. Ich will es TestInput statt drucken ..

Antwort

1

die default Argument verwenden:

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

Danke, das funktioniert – tsaebeht

0

Mit

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

Sie haben eine 3-Wege-Wahl

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

Wenn Sie don‘ t brauchen, dass aConst Option, die nargs='?' weglassen. Da es sich um ein markiertes Argument handelt, ist es bereits optional. Es braucht das `? 'Nicht.

parser.add_argument('--input', default='testInput') 
Verwandte Themen