2017-03-05 1 views
0

저는 Python argparse을 사용하여 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로 인쇄합니다. 나는

답변

1

default 인수를 사용합니다 .. 대신 TestInput를 인쇄하려면 : 당신이 3 방법의 선택의 여지가

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 
+0

감사합니다. – tsaebeht

0

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

당신은 '돈 경우 aConst 옵션이 필요하면 nargs='?'을 생략하십시오. 플래그가 지정된 인수이므로 이미 선택 사항입니다. `? '는 필요 없다.

parser.add_argument('--input', default='testInput') 
관련 문제