2013-08-16 2 views
1

나는 세 개의 매개 변수 -f -l -a를 사용하는 간단한 파이썬 스크립트를 가지고 있습니다. 나는 -a를 선택적 매개 변수로 사용하고 싶습니다.이 매개 변수를 전달하는 데 가장 효율적인 방법을 제외하고 try/except를 사용하고 있습니다 (필요한 매개 변수도 전달하지 않으면 예외를 잡을 필요가 있습니다). 첫번째 파이썬 문서에서 위치 인수 대비하는 ional 옵트의 철학에서선택적 매개 변수는 파이썬 스크립트를 전달했습니다


try: 
    (options, args) = getopt.getopt(sys.argv[1:], 'f:l:a:', ['first=', 'last=', 'age=']) 

except getopt.GetoptError: 
    help() 

for option in options: 

     if option[0] == '-f': 
       firstName = option[1] 
     elif option[0] == '-l': 
       lastName = option[1] 
     elif option[0] == '-a': 
       personAge = option[1] 

if (firstName is None): 
    print >>sys.stderr, "Missing first name" 
    sys.exit(1) 

if (lastName is None): 
    print >>sys.stderr, "Missing first name" 
    sys.exit(1) 

try: 
    (personAge is None) 
except NameError: 
    print("Setting personAge to unknown") 
    personAge = 'Unknown' 

print firstName + " " + lastName + " " + personAge 
+3

대담하게 만들고 큰 글꼴을 만드는 것이 질문을 더 급하게 만들었다 고 생각합니까? –

+0

@Jack_of_All_Trades는 대기중인 수정을 방금 승인했습니다. – Algorithmist

답변

0

봐 다음은 스크립트, 사전에 감사입니다.

argparse 모듈을 살펴보십시오. 여전히 API를 사용하려는 경우 API가 더욱 유연합니다.

+0

"필수 옵션은 일반적으로 옵션이 선택 사항이기를 기대하기 때문에 일반적으로 잘못된 형식으로 간주되므로 가능한 경우 피해야합니다." http://docs.python.org/2.7/library/argparse.html#required – mighq

관련 문제