学習argparse
4598 ワード
簡単な紹介 argparseは包括的なパラメータ処理ライブラリです.パラメータは異なる動作をトリガすることができ、動作はadd_Argument()メソッドのactionパラメータ指定.サポートされるアクションには、パラメータの保存(逐一、またはリストの一部として)、パラメータの解析時に定数値(ブールスイッチの真/偽値に対する特殊な処理を含む)を保存し、パラメータの出現回数を統計し、コールバック関数を呼び出すことが含まれます.デフォルトのアクションは、パラメータ値を保存することです.この場合、タイプが指定されている場合は、保存する前にパラメータ値をタイプに変換します.destパラメータが指定されている場合、パラメータ値はコマンドラインパラメータ解析時に返されるネーミングスペースオブジェクトのdestパラメータ値という属性として保存されます.コマンドラインを解析してすべてのパラメータを定義するとparse_args()は、コマンドラインを解析するためにパラメータ文字列のセットを渡します.デフォルトではsys.argv[1:]からパラメータが取得されますが、独自のパラメータリストを渡すこともできます.オプションはGNU/POSIX構文を使用して処理されるので、シーケンスでオプションとパラメータ値を混合することができます.パーシ_args()の戻り値は、コマンドに渡されるパラメータを含むネーミングスペースです.オブジェクトはパラメータのプロパティを保存するので、パラメータdestが「myoption」の場合、args.myoptionでこの値にアクセスできます. add_Argument()メソッド add_Argument()メソッドは、コマンドラインパラメータを解析する方法を定義します. name or flags-オプション文字列の名前またはリスト、例えばfooまたは-f、--foo. action-コマンドラインがパラメータに遭遇したときの動作で、デフォルト値はstoreです.(6種類の動作) storeはパラメータ値を保存し、パラメータ値を別のデータ型に変換する可能性があります.アクションが明示的に指定されていない場合は、デフォルトではそのアクションです. store_constは、パラメータ解析からの値ではなく、パラメータ仕様の一部として定義された値を保存します.これは、通常、ブール値以外のコマンドラインタグを実装するために使用されます. store_ture/store_falseは、対応するブール値を保存します.この2つの動作はブールスイッチを実現するために用いられる. appendは、値をリストに保存します.パラメータが繰り返されると、複数の値が保存されます. append_constは、パラメータ仕様に定義された値をリストに保存します. versionプログラムに関するバージョン情報を印刷し、nargsを終了します.読み込むべきコマンドラインパラメータの数は、具体的な数字でもいいですか.値が指定されていない場合はPositional argumentに対してdefault、Optional argumentに対してconstを使用します.または*番号で、0または複数のパラメータを表します.または+番号は1または複数のパラメータ を表す. const-actionおよびnargsに必要な定数値.default-パラメータが指定されていない場合のデフォルト値. type-コマンドラインパラメータを変換するタイプ. choices-パラメータが許容できる値のコンテナ.required-オプションパラメータを省略できますか(オプションパラメータのみ). help-パラメータのヘルプ情報は、argparse.SUPPRESSとして指定すると、そのパラメータのヘルプ情報が表示されないことを示す. . metavar-usage説明のパラメータ名.必須パラメータのデフォルトはパラメータ名、オプションパラメータのデフォルトは大文字のパラメータ名です. dest-解析後のパラメータ名.デフォルトでは、オプションのパラメータについて最も長い名前を選択し、中線を下線に変換します.別名
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type]
[, choices][, required][, help][, metavar][, dest])
各パラメータは次のように解釈されます.
# import argparse
#
# parser = argparse.ArgumentParser(description='Process some integers.')
# parser.add_argument('integers', metavar='N', type=int, nargs='+',
# help='an integer for the accumulator')
# parser.add_argument('--sum', dest='accumulate', action='store_const',
# const=sum, default=max,
# help='sum the integers (default: find the max)')
#
# args = parser.parse_args()
# print(args.accumulate(args.integers)) # 15
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-s', action='store', dest='simple_value',
help='Store a simple value')
parser.add_argument('-c', action='store_const', dest='constant_value',
const='value-to-store',
help='Store a constant value')
parser.add_argument('-t', action='store_true', default=False,
dest='boolean_switch',
help='Set a switch to true')
parser.add_argument('-f', action='store_false', default=False,
dest='boolean_switch',
help='Set a switch to false')
# append
parser.add_argument('-a', action='append', dest='collection',
default=[],
help='Add repeated values to a list')
# append_const 。
parser.add_argument('-A', action='append_const', dest='const_collection',
const='value-1-to-append',
default=[],
help='Add different values to list')
parser.add_argument('-B', action='append_const', dest='const_collection',
const='value-2-to-append',
help='Add different values to list')
parser.add_argument('--version', action='version', version='%(prog)s 1.0')
results = parser.parse_args()
print('result: ', results)
print('simple_value =', results.simple_value)
print('constant_value =', results.constant_value)
print('boolean_switch =', results.boolean_switch)
print('collection =', results.collection)
print('const_collection =', results.const_collection)
'''
argparse Action 。 , call()。
'''