2016-08-16 13 views
0

파이썬에서 스크립트 작성을 마쳤습니다. 이제는 인터페이스에서 멈추었습니다. 사용자에게 옵션이 거의 없지만 선택 인수를 얻는 가장 좋은 방법은 무엇인지 알 필요가 없습니다. 그것을위한 코드는파이썬 getopt/optparse 선택적 명령 행 매개 변수 처리

def getOptions(argv): 
     try: 
      opts,args = getopt.getopt(argv, "hi:c:d:m", ["ifile=", "add=", "delete"]) 
     except getopt.GetoptError: 
      printUsage() 
      sys.exit(2) 
     for opt, arg in opts: 
      if opt in ("-h", "--help"): 
       print ("test -m <make> [src] [dst]\n") 
       print ("test -i <install>[filename] \n") 
       ..... 
       sys.exit() 
      if opt in ("-m", "--make"): 
       make(arg) 
       sys.exit() 
      if opt in ("-i","--install"): 
       install(arg) 
       sys.exit() 
      ... # few more options 
      else: 
       assert False, "unhandled option" 

내 질문은 내가 인수를 생략 할 수있는 방법 (같은 인수에 대한 기본 옵션 경로를 사용)하고이 제공되지 않은 경우, 사용자로부터 얻을 수 있다는 것입니다 ... 다음과 같습니다? 은 현재 내가 ./test -i 내가 떠날 수있는 방법 파일 이름을 제공하고 처럼 전화를했습니다 ./test -i
이 내 개발 환경 파이썬 2.6 나는 같은 문제가 한 번 더 시간을 붙어있다 및 제한 때문에, 지금은 optparse를 사용하지만 같은 문제가 있기 때문에 옵션 인자를 지원해야하고 수동으로 sys.argv를 파싱하는 것 이외의 다른 방법을 찾을 수 없습니다. 나는 거의 10 가지 옵션을 사용할 수 있습니다. 하나의 옵션 인수를 처리하면 내 스크립트가 최종 사용자에게 훨씬 편리해질 것입니다.

답변

1

보낸 사람 : https://docs.python.org/2/library/getopt.html Getopts는 선택적 인수를 지원하지 않습니다.

argparse를 사용하여 코드를 작성할 수 있습니까?

import argparse 
parser = argparse.ArgumentParser(description='python cli') 
parser.add_argument("-m", "--make", help="execute make", required=True) 
parser.add_argument("-i", "--install", help="execute install", required=True) 

# parse input arguments 
args = parser.parse_args() 

makeVal = args.make 
shouldInstall = args.install 

if makeVal : 
    make(makeVal) 
... 

참조 : https://docs.python.org/2.7/library/argparse.html

예를 들면 다음과