argparse是python用于解析命令行参数和选项的标准模块
# coding=utf-8
import argparse
import sys
reload(sys)
sys.setdefaultencoding('utf8')
# 然后创建对象
parse=argparse.ArgumentParser()
# 然后增参数
parse.add_argument("--learning_rate",type=float,default=0.01,help="initial learining rate")
parse.add_argument("--max_steps",type=int,default=2000,help="max")
parse.add_argument("--hidden1",type=int,default=100,help="hidden1")
#解析参数
arg=parse.parse_args() #参数要求匹配
#参数解析
print(arg.learning_rate)
print(arg.max_steps)
print(arg.hidden1)
$python test.py --learning_rate 0.1 --max_steps 10
0.1
10
100
# coding=utf-8
import argparse
import sys
reload(sys)
sys.setdefaultencoding('utf8')
# 然后创建对象
parse=argparse.ArgumentParser()
# 然后增参数
parse.add_argument("--learning_rate",type=float,default=0.01,help="initial learining rate")
parse.add_argument("--max_steps",type=int,default=2000,help="max")
parse.add_argument("--hidden1",type=int,default=100,help="hidden1")
#参数解析
arg,unparsed=parse.parse_known_args()#可以有额外的参数
print(unparsed) #额外参数的列表
print(arg.learning_rate)
print(arg.max_steps)
print(arg.hidden1)
$python test.py --learning_rate 0.1 --max_steps 10 --aaa 8979 --nnn "sakljk"
['--aaa', '8979', '--nnn', 'sakljk']
0.1
10
100
两个解析函数基本功能是一样的,唯一的区别在于,parse_args要求参数必须匹配否则会报错,parse_known_args则将不匹配的参数当作额外参数保存在unparsed列表中,并且不会报错。