2016-08-16 11 views
0

私はPythonでスクリプトを書いてしまいましたが、今ではインターフェースから抜け出してしまいました。ユーザからのオプションはほとんどありませんが、オプションの引数を得るにはどうすればよいか分かりません。 そのためのコードは、私の質問はどのように私は、引数を省略(のような引数のデフォルトオプションのパスを使用)し、それが提供されていない場合は、利用者から得ることができるということですPython 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" 

...以下の通りである?? 現在、私は、ファイル名を残して、私は1つのより多くの時間と同じ問題でこだわっている ./test -i
のように呼び出すことができ、私の開発環境は、Python 2.6でどのように ./test -i を提供してきましたし、今はoptparseを使用していますが、同じ問題があるので、オプションの引数をサポートする必要があり、手動でsys.argvを解析する以外の方法を見つけることができませんでした。 1つのオプションの引数を処理すると、私のスクリプトはエンドユーザにとってはるかに便利になります。

答えて

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

関連する問題