在python中,命令行解析的很好用,
首先导入命令行解析模块
1
2
|
import argparse import sys |
然后创建对象
parse=argparse.ArgumentParser()
然后增加命令行
1
2
3
|
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" ) |
对于函数add_argumen()第一个是选项,第二个是数据类型,第三个默认值,第四个是help命令时的说明
然后用arg=parse.parse_args(sys.argv[1:])
其中参数sys.argv[1:]是命令行语句中从第一个到最后。如在ubuntu下输入命令行python gg.py --learning_rate 20 --max_steps 10
则sys.argv[1:0]=--learning_rate 20 --max_steps 10
输出的arg为namespace空间,结果是Namespace(hidden1=100, learning_rate=20.0, max_steps=10)
但是parse_known_args()函数输出结果为
te 20 --max_steps 10
20.0
10
100
程序:
1
2
3
4
5
6
7
8
9
10
11
12
|
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" ) flags,unparsed = parse.parse_known_args(sys.argv[ 1 :]) print flags.learning_rate print flags.max_steps print flags.hidden1 print unparsed |
输出结果:
20.0
10
100
[]
程序:
20.0
10
100
这两个函数的功能差不多
原文链接:http://blog.csdn.net/mameng1/article/details/54409910