web-dev-qa-db-ja.com

Pythonのargparseでmetavarとactionはどういう意味ですか?

argparse モジュールを読んでいます。メタ変数とアクションが意味するものとして立ち往生しました

_>>> 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)')
_

見逃したかもしれませんが、読んだものから、metavaraction (action="store_const", etc)の定義が見つかりませんでした。彼らは実際にはどういう意味ですか?

43
eagertoLearn

metavar は、期待される引数の場所のヘルプメッセージで使用されます。 FOOがデフォルトのmetavarであるを参照してください:

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo')
>>> parser.add_argument('bar')
>>> parser.parse_args('X --foo Y'.split())
Namespace(bar='X', foo='Y')
>>> parser.print_help()
usage:  [-h] [--foo FOO] bar
...

action は、コマンドライン引数の処理方法を定義します。定数として保存する、リストに追加する、ブール値を保存するなど、いくつかの組み込みアクションが利用できます。 1。

18
alecxe

Metavar:ヘルプメッセージのオプションの引数に別の名前を付けます。 add_argument()内のmetavarキーワード引数に値を指定します。

例えば:

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', metavar='YYY')
>>> parser.add_argument('bar', metavar='XXX')
>>> parser.parse_args('X --foo Y'.split())
Namespace(bar='X', foo='Y')
>>> parser.print_help()
usage:  [-h] [--foo YYY] XXX

positional arguments:
  XXX

optional arguments:
  -h, --help  show this help message and exit
  --foo YYY

リファレンス- http://www.usatlas.bnl.gov/~caballer/files/argparse/add_argument.html

Action:引数は、add_argument()のaction引数で指定されたさまざまなアクションをトリガーできます。引数に遭遇したときにトリガーできる6つの組み込みアクションがあります。

(1)ストア-オプションで別のタイプに変換した後、値を保存します。これは、明示的に指定されていない場合に実行されるデフォルトのアクションです。

(2)store_true/store_false-適切なブール値を保存します。

(3)store_const-解析される引数からの値ではなく、引数の仕様の一部として定義された値を保存します。これは通常、ブール値ではないコマンドラインフラグを実装するために使用されます。

(4)append-値をリストに保存します。引数が繰り返されると、複数の値が保存されます。

(5)append_const-引数の仕様で定義された値をリストに保存します。

(6)version-プログラムのバージョン詳細を出力して終了します。

リファレンス- http://bioportal.weizmann.ac.il/course/python/PyMOTW/PyMOTW/docs/argparse/index.html

22

あなたが示したのは、最初の例です。 Pythonドキュメントからの関連セクション:

http://docs.python.org/dev/library/argparse.html#action

http://docs.python.org/dev/library/argparse.html#metavar

3
hpaulj