что означает metavar и action в argparse в python?

Я читаю через argparse модуль. Я застрял, как что metavar и означает

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

Я, возможно, пропустил, но из того что я читал, я не мог найти определения metavar и action (action="store_const", etc). что они на самом деле означают?

Спасибо за помощь

3 ответов


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
...

действие определяет, как обрабатывать аргументы командной строки: сохранить его как постоянного, добавьте в список хранить логическое значение и т. д. Существует несколько встроенных действий, а также легко написать пользовательский.


Metavar: он предоставляет другое имя для необязательного аргумента в сообщениях справки. Укажите значение аргумента ключевого слова metavar в add_argument ().

например:

>>> 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 (). Есть шесть встроенных действий, которые может запускаться при возникновении аргумента:

(1) Store - сохранить значение, при необходимости преобразовав его в другой тип. Это действие по умолчанию, если оно не указано явно.

(2) store_true/ store_false - сохранить соответствующее логическое значение.

(3) store_const - сохранить значение, определенное как часть спецификации аргумента, а не значение, полученное из анализируемых аргументов. Обычно это используется для реализации команды флаги строк, которые не являются логическими.

(4) добавить значение в список. Несколько значений сохраняются, если аргумент повторяется.

(5) append_const - сохранить значение, определенное в спецификации аргумента в список.

(6) версия - печать сведений о версии программы, а затем выход.

ссылка - http://bioportal.weizmann.ac.il/course/python/PyMOTW/PyMOTW/docs/argparse/index.html


то, что ты показал нам, это только первый пример. Соответствующие разделы из документов Python:

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

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