介绍
add_argument:运行程序时,给定参数,通过调用给定的参数执行程序
ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
name of flags 是必须的参数,该参数接受选项参数或者是位置参数。
parser.add_argument('--inner-batch', help='inner batch size', choices=[1,5,10], default=5, type=int)
就比如上面的 '--inner-batch' ,例如在启动程序demo.py时,在终端中输入 ./demo.py --inner-batch 10 就会将inner-batch这个选项的参数设置为10,不给参数时使用default参数5。
参数数量nargs默认为1个,也可以自己设定多个。
当选项接受1个或者不需要参数时指定nargs=’?',当没有参数时,会从default中取值。对于选项参数有一个额外的情况,就是出现选项而后面没有跟具体参数,那么会从const中取值
type为参数类型,例如int。
choices用来选择输入参数的范围,例如上面choices=【1,5,10】表示输入参数只能为1或5或10
required用来设置在命令中显示参数,当required为True时,在输入命令时需要显示该参数
help用来描述这个选项的作用
action表示该选项要执行的操作
dest用来指定参数的位置
metavar用在help信息的输出中
对于action:
a.py文件的代码如下:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--t', help=' ', action='store_true', default=False)
config = parser.parse_args()
print(config.t)
直接运行python a.py,输出结果False
运行python a.py --t,输出结果True
也就是说,action='store_true',只要运行时该变量有传参就将该变量设为True。
对于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
https://stackoverflow.com/questions/19124304/what-does-metavar-and-action-mean-in-argparse-in-python