您的位置:首页 > 编程语言 > Python开发

python学习 之 argparse

2017-04-09 08:47 253 查看
argparse是一个命令解析器,如下我们解析下tensorflow中的一个例子,希望大家共勉之。


import argparse
import sys
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.register("type", "bool", lambda v: v.lower() == "true")
parser.add_argument(
"--max_steps",
type=int,
default=10,
help="Number of steps to run trainer.")
parser.add_argument(
"--train_batch_size",
type=int,
default=100,
help="Batch size used during training.")
parser.add_argument(
"--learning_rate",
type=float,
default=0.025,
help="Initial learning rate.")
parser.add_argument(
"--data_dir",
type=str,
default="/tmp/mnist_data",
help="Directory for storing data")
parser.add_argument(
"--ui_type",
type=str,
default="curses",
help="Command-line user interface type (curses | readline)")
parser.add_argument(
"--fake_data",
type="bool",
nargs="?",
const=True,
default=False,
help="Use fake MNIST data for unit testing")
parser.add_argument(
"--debug",
type="bool",
nargs="?",
const=True,
default=False,
help="Use debugger to track down bad values during training")
FLAGS, unparsed = parser.parse_known_args()


主要使用了这么几个接口(对于python,大家可以通过help(argparse)去查询文档):

parser = argparse.ArgumentParser()#创建一个命令解析器的句柄
#注册一个命令解析器参数类型,其中lambda v: v.lower()=="true"
#是代表一个匿名函数的实现,主要判断获取到的参数v转换成小写后是否等于true
parser.register("type", "bool", lambda v: v.lower() == "true")
#这个接口主要是添加命令解析器命令。其中下面使用的type就是上面注册的类型(注意:bool 是带双引号的)
parser.add_argument(
"--debug",
type="bool",
nargs="?",
const=True,
default=False,
help="Use debugger to track down bad values during training")


#这个接口是获取命令行里面输入的命令参数,并返回

FLAGS, unparsed = parser.parse_known_args()

下面是一个简单的例子:



输入参数和结果:


:

如果还有疑问,大家可以一起交流下,谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python tensorflow argparse