2011-09-26 5 views
5

파이썬에서 사용 함수에 문제가 있습니다. 나는 아무것도하지만있어getopt에서 사용 함수가 작동하지 않습니다.

def main(argv): 
    try: 
      opts, args = getopt.getopt(argv, 'hi:o:tbpms:', ['help', 'input=', 'output=']) 
      if not opts: 
        print 'No options supplied' 
        usage() 
    except getopt.GetoptError,e: 
      print e 
      usage() 
      sys.exit(2) 

    for opt, arg in opts: 
      if opt in ('-h', '--help'): 
        usage() 
        sys.exit(2) 
if __name__ =='__main__': 
    main(sys.argv[1:]) 

과 나뿐만 아니라

def usage(): 
    print "\nThis is the usage function\n" 
    print 'Usage: '+sys.argv[0]+' -i <file1> [option]' 

을 사용법 함수를 정의하지만 ./code.py 또는 ./code.py -h으로 내 코드를 실행하면 (그것을 실행 가능) : 이것은 내 주요 기능의 일부입니다 파이썬 도움말.

+0

"파이썬 도움말 이외의 다른 것"은 무엇을 의미합니까? 각 상황에서 산출물은 정확히 무엇입니까? 코드가 정확합니다. – agf

+0

'사용법 : python [option] ... [-c cmd | -m mod | 파일 | -] [arg] ... ' – Alejandro

+0

더 많은 코드를 보여 주어야합니다. 내가 붙여 넣은 것에서 파이썬 사용 라인을 트리거하는 것이 보이지 않습니다. – agf

답변

5

나를 위해 일했습니다. "python code.py"로 실행하십시오.

import getopt, sys 

def usage(): 
    print "\nThis is the usage function\n" 
    print 'Usage: '+sys.argv[0]+' -i <file1> [option]' 

def main(argv): 
    try: 
    opts, args = getopt.getopt(argv, 'hi:o:tbpms:', ['help', 'input=', 'output=']) 
    if not opts: 
     print 'No options supplied' 
     usage() 
    except getopt.GetoptError,e: 
    print e 
    usage() 
    sys.exit(2) 

    for opt, arg in opts: 
    if opt in ('-h', '--help'): 
     usage() 
     sys.exit(2) 

if __name__ =='__main__': 
    main(sys.argv[1:]) 
+1

"나는 오류를 얻지 못했습니다"는 "왜 오류가 발생 했습니까?"라는 대답이 아닙니다. – agf

+0

@agf 네, 그렇습니다. 이것은 그의 실제 목표가 작업 코드를 얻는 것이라면 여기에 있습니다. 그가 코드가 작동하지 않는 이유를 배우는 데에만 관심이 있다면이 코드가 도움이되지 않는다고 생각합니다. – BenH

+0

도움을 주셔서 감사합니다.''opt '('-h ','--help ')를 선택하면 :'나를 위해 효과가있는 것 같습니다. 감사합니다. – Alejandro

관련 문제