python中使用什么命令安装组件_Py之argparse:Python库之argparse(命令行解析)简介、安装、使用方法之详细攻略...

Py之argparse:Python库之argparse(命令行解析)简介、安装、使用方法之详细攻略

导读

python中的命令行解析最简单最原始的方法是使用sys.argv来实现,更高级的可以使用argparse这个模块。argparse从python 2.7开始被加入到标准库中,所以如果你的python版本还在2.7以下,那么需要先手动安装。除了这两种之外,还有其他框架的命令行解析法,比如TF flags。

目录

argparse简介

argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。当然,Python 也有第三方的库可用于命令行解析,而且功能也更加强大,比如 docopt,Click。

python中的命令行解析最简单最原始的方法是使用sys.argv来实现,更高级的可以使用argparse这个模块。argparse从python 2.7开始被加入到标准库中,所以如果你的python版本还在2.7以下,那么需要先手动安装。

AgPARSE模块使得编写用户友好的命令行接口变得容易。该程序定义了它需要什么参数,而AgPARSE将解析如何解析那些Sy.ARGV中的那些参数。当用户给程序无效参数时,AgPARSE模块也会自动生成帮助和使用消息并发出错误。

1、命令行的应用

在ML、DL中,往往有过多的Hyperparameter需要调优,优化算法、学习率、卷积核尺寸等很多参数都需要不断调整,使用命令行参数是非常方便的。有两种实现方式,

1、利用python的argparse包

2、调用tensorflow自带的app.flags实现

argparse安装

默认安装

argparse使用方法

1、一个简单示例

主要有三个步骤:

ArgumentParser()         #创建对象

add_argument()           #调用方法添加参数

parse_args()                #使用解析添加的参数

基本使用

import argparse

parser=argparse.ArgumentParser()

parser.add_argument("echo",help="echo the string")

args=parser.parse_args()

print args.echo

import argparse

parser = argparse.ArgumentParser(description='Python之 argparse库的使用说明.')

parser.add_argument('frist', metavar='a', type=str,

help='Path to the image to open.')

parser.add_argument('second', metavar='b', type=str,

help='Path to the image to save.')

parser.add_argument('third', metavar='c', type=str,

help='Prefix for the saved results.')

args = parser.parse_args()

image_open_path = args.frist

image_save_path = args.second

image_prefix = args.third

2、深度学习算法的一个小案例

调用python的argparse包,调用函数parser.parse_known_args()解析命令行参数。代码运行后得到的FLAGS是一个结构体。

import argparse

import sys

parser = argparse.ArgumentParser()

parser.add_argument('--fake_data', nargs='?', const=True, type=bool,

default=False,

help='If true, uses fake data for unit testing.')

parser.add_argument('--max_steps', type=int, default=1000,

help='Number of steps to run trainer.')

parser.add_argument('--learning_rate', type=float, default=0.001,

help='Initial learning rate')

parser.add_argument('--dropout', type=float, default=0.9,

help='Keep probability for training dropout.')

parser.add_argument('--data_dir', type=str, default='/tmp/tensorflow/mnist/input_data',

help='Directory for storing input data')

parser.add_argument('--log_dir', type=str, default='/tmp/tensorflow/mnist/logs/mnist_with_summaries',

help='Summaries log directory')

FLAGS, unparsed = parser.parse_known_args()

tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)

3、最经典结构案例

先定义主函数,然后传入argparse类型参数变量,每个变量设置默认值。

def parse_args():

parser = argparse.ArgumentParser()

parser.add_argument('--font_ch', default='F:/File_Python/Python_daydayup/data_input/LPR/font/platech.ttf')

parser.add_argument('--font_en', default='F:/File_Python/Python_daydayup/data_input/LPR/font/platechar.ttf')

parser.add_argument('--bg_dir', default='F:/File_Python/Python_daydayup/data_input/LPR/NoPlates')

parser.add_argument('--out_dir', default='F:/File_Python/Python_daydayup/data_input/LPR/plate_train', help='output dir')

parser.add_argument('--make_num', default=100, type=int, help='num') # default=10000

parser.add_argument('--img_w', default=120, type=int, help='num')

parser.add_argument('--img_h', default=32, type=int, help='num')

return parser.parse_args()

def main(args):

G = GenPlate(args.font_ch, args.font_en, args.bg_dir)

G.genBatch(args.make_num,2,range(31,65), args.out_dir, (args.img_w, args.img_h))

if __name__ == '__main__':

main(parse_args())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值