Python命令行解析Argparse模块常用语法使用简介及详细实例

下面介绍下例子代码。

1、导入argparse模块

2、创建解析器对象ArgumentParser,可以添加参数。

description:描述程序

parser=argparse.ArgumentParser(description="This is a example program ")

add_help:默认是True,可以设置False禁用

3、add_argument()方法,用来指定程序需要接受的命令参数

定位参数:

parser.add_argument(“echo”,help=“echo the string”)

可选参数:

parser.add_argument("–verbosity", help=“increase output verbosity”)

在执行程序的时候,定位参数必选,可选参数可选。

add_argument()常用的参数:

dest:如果提供dest,例如dest=“a”,那么可以通过args.a访问该参数

default:设置参数的默认值

action:参数出发的动作

store:保存参数,默认

store_const:保存一个被定义为参数规格一部分的值(常量),而不是一个来自参数解析而来的值。

store_ture/store_false:保存相应的布尔值

append:将值保存在一个列表中。

append_const:将一个定义在参数规格中的值(常量)保存在一个列表中。

count:参数出现的次数

parser.add_argument("-v", “–verbosity”, action=“count”, default=0, help=“increase output verbosity”)

version:打印程序版本信息

type:把从命令行输入的结果转成设置的类型

choice:允许的参数值

parser.add_argument("-v", “–verbosity”, type=int, choices=[0, 1, 2], help=“increase output verbosity”)

help:参数命令的介绍


以上部分来自以下博客,感谢博主
作者:qq_wuqingdefeng
来源:CSDN
原文:https://blog.csdn.net/zhaoluruoyan89/article/details/82350365

具体实例
以faster rcnn代码中的命令行解析为例:

#coding=utf-8
import argparse
import sys
 
def parse_args():
  parser = argparse.ArgumentParser(description='Train a Fast R-CNN network')
  parser.add_argument('--cfg', dest='cfg_file',help='optional config file',default=None, type=str)
  parser.add_argument('--weight', dest='weight',help='initialize with pretrained model weights',type=str)
  parser.add_argument('--imdb', dest='imdb_name',help='dataset to train on',default='voc_2007_trainval', type=str)
  parser.add_argument('--imdbval', dest='imdbval_name',help='dataset to validate on',default='voc_2007_test', type=str)
  parser.add_argument('--iters', dest='max_iters',help='number of iterations to train',default=70000, type=int)
  parser.add_argument('--tag', dest='tag',help='tag of the model',default=None, type=str)
  parser.add_argument('--net', dest='net',help='vgg16, res50, res101, res152, mobile',default='res50', type=str)
  parser.add_argument('--set', dest='set_cfgs',help='set config keys', default=None,nargs=argparse.REMAINDER)
 
  if len(sys.argv) == 1:
    parser.print_help()
    sys.exit(1)
  args = parser.parse_args()
  return args
 
if __name__ == '__main__':
  args = parse_args()
  print(args)

将以上代码保存为test.py,然后在命令行输入:python test.py
结果为:
usage: test.py [-h] [–cfg CFG_FILE] [–weight WEIGHT] [–imdb IMDB_NAME]
[–imdbval IMDBVAL_NAME] [–iters MAX_ITERS] [–tag TAG]
[–net NET] [–set …]

Train a Fast R-CNN network

optional arguments:
-h, --help show this help message and exit
–cfg CFG_FILE optional config file
–weight WEIGHT initialize with pretrained model weights
–imdb IMDB_NAME dataset to train on
–imdbval IMDBVAL_NAME
dataset to validate on
–iters MAX_ITERS number of iterations to train
–tag TAG tag of the model
–net NET vgg16, res50, res101, res152, mobile
–set … set config keys
在命令行输入:

python test.py --weight data/imagenet_weights/vgg16.ckpt \
      		--imdb voc_2007_trainval  \
      		--imdbval voc_2007_test  \
      		--iters 7000   \
      		--cfg experiments/cfgs/vgg16.yml \
      		--net vgg16            \
      		--set ANCHOR_SCALES "[8,16,32]" ANCHOR_RATIOS "[0.5,1,2]" TRAIN.STEPSIZE "[50000]"

结果为:
Namespace(cfg_file=‘experiments/cfgs/vgg16.yml’,imdb_name=‘voc_2007_trainval’,imdbval_name=‘voc_2007_test’, max_iters=7000, net=‘vgg16’, set_cfgs=[‘ANCHOR_SCALES’, ‘[8,16,32]’, ‘ANCHOR_RATIOS’, ‘[0.5,1,2]’, ‘TRAIN.STEPSIZE’, ‘[50000]’], tag=None, weight=‘data/imagenet_weights/vgg16.ckpt’)


该部分来自此作者
作者:蓬莱道人
来源:CSDN
原文:https://blog.csdn.net/MOU_IT/article/details/81782386

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值