python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
在python中,命令行解析的很好用,
首先导入命令行解析模块
importargparse importsys
然后创建对象
parse=argparse.ArgumentParser()
然后增加命令行
parse.add_argument("--learning_rate",type=float,default=0.01,help="initialleariningrate") parse.add_argument("--max_steps",type=int,default=2000,help="max") parse.add_argument("--hidden1",type=int,default=100,help="hidden1")
对于函数add_argumen()第一个是选项,第二个是数据类型,第三个默认值,第四个是help命令时的说明
然后用arg=parse.parse_args(sys.argv[1:])
其中参数sys.argv[1:]是命令行语句中从第一个到最后。如在ubuntu下输入命令行pythongg.py--learning_rate20--max_steps10
则sys.argv[1:0]=--learning_rate20--max_steps10
输出的arg为namespace空间,结果是Namespace(hidden1=100,learning_rate=20.0,max_steps=10)
但是parse_known_args()函数输出结果为
te20--max_steps10
20.0
10
100
程序:
importargparse importsys parse=argparse.ArgumentParser() parse.add_argument("--learning_rate",type=float,default=0.01,help="initialleariningrate") parse.add_argument("--max_steps",type=int,default=2000,help="max") parse.add_argument("--hidden1",type=int,default=100,help="hidden1") flags,unparsed=parse.parse_known_args(sys.argv[1:]) printflags.learning_rate printflags.max_steps printflags.hidden1 printunparsed
输出结果:
20.0
10
100
[]
程序:
20.0
10
100
这两个函数的功能差不多