参考致谢:
为python代码添加命令行参数
https://blog.youkuaiyun.com/Samaritan_x/article/details/84146029
基本用法
使用模块argparse代码如下:
函数外,定义参数
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--learning_rate",type=float,default=0.01,help="initial learining rate")
#args = parser.parse_args()
函数内,获取和使用参数
args, unparsed = parser.parse_known_args()
learning_rate = args.learning_rate
参数详解
函数原型
ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
参数含义
name or flags:是必须的参数,该参数接受选项参数或者是位置参数(一串文件名)
参数数量nargs默认为1个,也可以自己设定多个。
当选项接受1个或者不需要参数时指定nargs=’?',当没有参数时,会从default中取值。对于选项参数有一个额外的情况,就是出现选项而后面没有跟具体参数,那么会从const中取值
default:Flase表示必选参数,没有默认值; 有数值表示可选参数,不设置时使用默认值
type:float,int,
choices用来选择输入参数的范围,例如上面choices=【1,5,10】表示输入参数只能为1或5或10
required用来设置在命令中显示参数,当required为True时,在输入命令时需要显示该参数
help用来描述这个选项的作用
action表示该选项要执行的操作
dest用来指定参数的位置
metavar用在help信息的输出中
注意事项
# parser.parse_args()必须参数输入正确,出现新的会报错
args = parser.parse_args()
print(args)
#parser.parse_known_args()允许出现一些新的参数,存在unparsed中,不会报错
FLAGS, unparsed = parser.parse_known_args()
print(FLAGS)
print(unparsed)