optparseモジュール


このモジュールは、コマンドラインオプションを解析するインタフェースを提供し、optparseは2.7以降のバージョンで開発を継続せず、2.7以降argparseモジュールを開発します.
optparseモジュールで使用されるコードの例:
#!/bin/sh
#
#  This is a learning notes in the process of analysing repo python scripts
#   authour: [email protected]
#
magic='--calling-python-from-/bin/sh--'
"""exec" python -E "$0" "$@" """#$magic"
if __name__ == '__main__':
  import sys
  if sys.argv[-1] == '#%s' % magic:
    del sys.argv[-1]
del magic

#
print "An example of using optparse
" from optparse import OptionParser parser = OptionParser() parser.add_option("-f", "--file", dest="filename", help="write report to FILE", metavar="FILE") parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=True, help="don't print status messages to stdout") (options, args) = parser.parse_args()#the default argument list is sys.argv[1:]

ここで、optionsは指定されたオプションを表し、argsは対応する位置パラメータを表す
optionのactionsを理解する
Actionsは、コマンドラインに対応するオプションをoptparseがどのように処理するかを示します.これらのActionsは、optparseモジュールに予め定義されており、もちろんより多くのActionを拡張することができます.デフォルトではactionはstoreです.
StoreAction
optparseは、その後のパラメータをDESTで指定した変数に保存します.次のようになります.
parser.add_option("-f", "--file",
                  action="store", type="string", dest="filename")

次の文を実行します.
args = ["-f", "foo.txt"]
(options, args) = parser.parse_args(args)

options.filenameの値はfoo.txtです.
optparseでは、次のような他のタイプのパラメータもサポートされています.
parser.add_option("-n", type="int", dest="num")

ブールタイプのオプションには、2つの特別なaction:store_があります.trueとstore_false.
次のようになります.
parser.add_option("-v", action="store_true", dest="verbose")
parser.add_option("-q", action="store_false", dest="verbose")

上記のコードは、オプションが-vの場合、verboseがTrue、オプションが-qの場合、verboseがFalseであることを示しています.
その他のActions:
"store_const"
定数を格納
"append"
このオプションのパラメータをリストに追加
"count"
カウンタを加算
1
"callback"
特定の関数を呼び出す
デフォルト
parser.add_option("-v", action="store_true", dest="verbose", default=False)
parser.add_option("-q", action="store_false", dest="verbose", default=True)

まず、デフォルト値はオプションに関係なくdest値にのみ関連付けられ、デフォルト値を複数回設定すると、最後に設定したデフォルト値が有効になります.
ヘルプ情報の生成
parser.add_option("-v", "--verbose",
                  action="store_true", dest="verbose", default=True,
                  help="make lots of noise [default]")

metavar
ユーザーが提供するパラメータを表します.デフォルトでは、optparseはdest変数名をmetavarの値として大文字に変更します.もちろん、指定したmetavarの値も表示できます.
グループ化オプション
# Logging
group = init_optparse.add_option_group('Logging options')
group.add_option('-q', '--quiet',
                 dest="quiet", action="store_true", default=False,
                 help="be quiet"),
# Manifest
group = init_optparse.add_option_group('Manifest options')
group.add_option('-u', '--manifest-url',
                 dest='manifest_url',
                 help='manifest repository location', metavar='URL')