我正在阅读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)
的定义
{{1}}。他们究竟是什么意思?
答案 0 :(得分:19)
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
操作:参数可以触发add_argument()的action参数指定的不同操作。遇到参数时,可以触发六个内置操作:
(1)存储 - 在选择将其转换为其他类型后保存该值。如果未明确指定,则采用默认操作。
(2)store_true / store_false - 保存适当的布尔值。
(3)store_const - 保存定义为参数规范一部分的值,而不是来自正在解析的参数的值。这通常用于实现不是布尔值的命令行标志。
(4)追加 - 将值保存到列表中。如果重复参数,则保存多个值。
(5)append_const - 将参数规范中定义的值保存到列表中。
(6)version - 打印有关该程序的版本详细信息,然后退出。
参考 - http://bioportal.weizmann.ac.il/course/python/PyMOTW/PyMOTW/docs/argparse/index.html
答案 1 :(得分:17)
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定义了如何处理命令行参数:将其存储为常量,附加到列表中,存储布尔值等。有几个内置操作可用,而且编写自定义很容易之一。
答案 2 :(得分:4)
你向我们展示的只是第一个例子。 Python文档中的相关部分: