import argparse
import sys
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")
parse_args返回的是命名空间
arg=parse.parse_args(sys.argv[1:]) #arg为namespace空间
print (arg)
parse_known_args返回一个元组,包含两个元素,一个是命名空间,另一个是相应的命令
flags=parse.parse_known_args(sys.argv[1:]) #解析的是你在命令行输入的东西
完整代码如下,保存为test.py
import argparse
import sys
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(sys.argv[1:]) #arg为namespace空间
print (arg)
flags=parse.parse_known_args(sys.argv[1:]) #解析的是你在命令行输入的东西
print (flags)
print (flags[0].learning_rate)
print (flags[0].max_steps)
print (flags[0].hidden1)
在cmd命令行输入: python test.py --learning_rate 20 --max_steps 10
返回:
Namespace(hidden1=100, learning_rate=20.0, max_steps=10)
(Namespace(hidden1=100, learning_rate=20.0, max_steps=10), [])
20.0
10
100
如果
flags=parse.parse_known_args(sys.argv[0:])
返回:
(Namespace(hidden1=100, learning_rate=20.0, max_steps=10), ['test1.py'])
依次类推,不解析变量名,只解析值