学習argparse

4598 ワード

簡単な紹介
  • argparseは包括的なパラメータ処理ライブラリです.パラメータは異なる動作をトリガすることができ、動作はadd_Argument()メソッドのactionパラメータ指定.サポートされるアクションには、パラメータの保存(逐一、またはリストの一部として)、パラメータの解析時に定数値(ブールスイッチの真/偽値に対する特殊な処理を含む)を保存し、パラメータの出現回数を統計し、コールバック関数を呼び出すことが含まれます.デフォルトのアクションは、パラメータ値を保存することです.この場合、タイプが指定されている場合は、保存する前にパラメータ値をタイプに変換します.destパラメータが指定されている場合、パラメータ値はコマンドラインパラメータ解析時に返されるネーミングスペースオブジェクトのdestパラメータ値という属性として保存されます.コマンドラインを解析してすべてのパラメータを定義するとparse_args()は、コマンドラインを解析するためにパラメータ文字列のセットを渡します.デフォルトではsys.argv[1:]からパラメータが取得されますが、独自のパラメータリストを渡すこともできます.オプションはGNU/POSIX構文を使用して処理されるので、シーケンスでオプションとパラメータ値を混合することができます.パーシ_args()の戻り値は、コマンドに渡されるパラメータを含むネーミングスペースです.オブジェクトはパラメータのプロパティを保存するので、パラメータdestが「myoption」の場合、args.myoptionでこの値にアクセスできます.
  • add_Argument()メソッド
  • add_Argument()メソッドは、コマンドラインパラメータを解析する方法を定義します.
    ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type]
    [, choices][, required][, help][, metavar][, dest])
    
    各パラメータは次のように解釈されます.
  • 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-解析後のパラメータ名.デフォルトでは、オプションのパラメータについて最も長い名前を選択し、中線を下線に変換します.別名
  • 
    # 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()。
    
    '''