2013-03-13 2 views
1

argparse에서 숫자 문자열을 얻으려고합니다. -n 옵션이 제공되는지 여부는 선택 사항입니다.Python argparse : 목록을 반환해야합니까?

import argparse 
parser = argparse.ArgumentParser() 
parser.add_argument('-n', nargs=1) # -n is optional but must come with one and only one argument 
args = parser.parse_args() 
test = args.n 
if test != 'None': 
    print("hi " + test) 

"-n 인수"를 제공하지 않으면 프로그램이 실패하지만 제대로 작동하지 않습니다.

Traceback (most recent call last): 
    File "parse_args_test.py", line 7, in <module> 
    print("hi " + test) 
TypeError: Can't convert 'NoneType' object to str implicitly 

어떻게 해결할 수 있습니까?

답변

2

None"hi "을 연결하지 마십시오 :

print("hi", test) 

또는

print("hi " + (test or '')) 

또는 시험 test 경우 명시 적 없음으로 설정됩니다

if test is not None: 
    print("hi", test) 
1

사용하는 경우 "입니다" 없음과 비교. 다음과 같이 표시되어야합니다.

if test is not None: 
    print("hi %s" % test) 
관련 문제