1. ホーム
  2. python

Python3学習まとめ - argparse.ArgumentParser()

2022-02-23 20:45:43
<パス

@ TOC

アーグパース 公式チュートリアル

<ブロッククオート

この記事は、学んだことを後で復習するためだけのものです

argparseモジュールを使うと、ユーザーフレンドリーなコマンドラインインターフェイスを簡単に書くことができます。プログラムは必要な引数を定義し、argparse は sys.argv からそれらの引数を解析する方法を見つけます。argparseモジュールはまた、自動的にヘルプとマニュアルを生成し、ユーザがプログラムに無効な引数を渡したときにエラーメッセージを出します。このモジュールはPython標準ライブラリの中で推奨されるコマンドラインパースモジュールです。

使用方法

  1. パーサーの作成
    ArgumentParserオブジェクトを作成します。
    parser = argparse.ArgumentParser(description='Process some integers.')
    
    
    
    ArgumentParser オブジェクトは、コマンドラインを Python のデータ型にパースするために必要なすべての情報を含んでいます。
  2. 引数の追加
    add_argument()メソッドを呼び出して、ArgumentParserオブジェクトにプログラムが必要とする引数の情報を追加します。
    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)')
    
    
    
    integers は 1 個以上の整数のリストで、umulate はコマンドラインで --sum 引数が指定された場合は sum() 関数で、それ以外は max() 関数になります。
  3. パラメータのパース
    parse_args() メソッドによるパラメータのパース。
    parser.parse_args(['---sum', '7', '-1', '42'])
    Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])
    
    
    
    スクリプトでは、parse_args()は通常引数なしで呼ばれ、ArgumentParserはsys.argvから自動的にコマンドライン引数を決定します。

ArgumentParserオブジェクト

class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True)


パラメータの説明。

  • prog - プログラムの名前 (デフォルト: sys.argv[0]) usage - プログラムの用途を説明する文字列 (デフォルト: パーサーに追加された引数から生成されます)
  • description - 引数のヘルプファイルの前に表示されるテキスト (デフォルト: なし)
  • epilog - パラメータのヘルプファイルの後に表示されるテキスト (デフォルト: なし).
  • parents - 引数も含めるべき ArgumentParser オブジェクトのリストです。
  • formatter_class - ヘルプドキュメントの出力形式をカスタマイズするためのクラスです。
  • prefix_chars - オプションのパラメータに付けるプレフィックス文字のセット(デフォルトは '-' ).
  • fromfile_prefix_chars - 追加のパラメータをファイルから読み込む必要がある場合に、ファイル名を識別するためのプレフィックス文字のセット (デフォルト: なし)
  • argument_default - 引数のグローバルなデフォルト値 (デフォルト: なし)
  • conflict_handler - 競合するオプションを解決するための戦略(通常は不要)。
  • add_help - パーサーに -h/-help オプションを追加します (デフォルト: True)
  • allow_abbrev - 省略形が曖昧でない場合に abbreviate long オプションを許可する (デフォルト: True)

add_argument() メソッド

ArgumentParser.add_argument(name or flags... [, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])


パラメータの説明。

  • name または flags - foo または -f, --foo のような、名前付きまたはオプション文字列のリスト。
  • action - 引数がコマンドラインに表示されたときに使用される基本的な動作の種類。
  • nargs - 消費されるべきコマンドライン引数の数。
  • const - いくつかのアクションとnargsによって選択されるために必要な定数です。
  • default - 引数がコマンドラインに表示されない場合に使用する値です。
  • type - コマンドライン引数が変換されるタイプ。
  • choices - 利用可能なパラメータを格納するコンテナです。
  • required - このコマンドラインオプションが省略可能かどうか(オプションのみ使用可能)。
  • help - このオプションが何をするのかについての簡単な説明。
  • metavar - 使用方法メッセージで使用するパラメータ値の例です。
  • dest - parse_args() が返すオブジェクトに追加される属性の名前です。

3.8 新機能を追加しました。
また、Actionのサブクラスや同じインターフェイスを実装した他のオブジェクトを渡すことで、任意のアクションを指定することも可能です。推奨される方法は、Action を拡張して コール メソッドと、オプションの イニット メソッドを使用します。

parse_args() メソッド

ArgumentParser.parse_args(args=None, namespace=None)


引数の説明。

  • args - パースする文字列のリスト。デフォルト値は、sys.argvから取得されます。
  • namespace - プロパティを取得するためのオブジェクト。既定値は、新しい空の Namespace オブジェクトです。