python-argparse 以及 在notebook中的使用

argparse模块是Python的命令行解析模块,可以很方便的进行参数的传递,而不需要修改源代码。

主要是用在命令行解析,在大工程配置的时候还是使用 config 比较好一些

在实际工程中常用到的地方就是一些参数的设置:比如:dest default  action  store_true这些参数,明白了这些参数理解大工程的项目也就不难了。

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:参数命令的介绍

具体更为详细的可以参考官方文档:  [Argparse 教程](https://docs.python.org/zh-cn/3/howto/argparse.html)

 

那么在jupyter notebook中怎么使用这种命令行参数呢?

直接封装为list就行:比如:['--dataset_type','csv','--annotations','xxx/yy.txt'] 类似这样的

 

简单的使用示例:

argparse的使用主要有三步,创建解析对象,添加命令行参数,进行参数的解析

看代码和注释:

import argparse 

#创建一个解析对象,当运行help时description会显示
parser = argparse.ArgumentParser(description='Process some integers.') 

#添加命令行参数,有两种,该种是位置参数,以参数的位置为准,比如第一个出现的参数就是复制给integers的
parser.add_argument('integers', metavar='N', type=int, nargs='+',help='an integer for the accumulator') 

#第二种:可选参数,该参数调用时必须给出名字,然后后边跟着值,和位置参数不一样,其中'-s','--sum'是
#一样的,都是指的同一个参数,一个是短的,一个是长的,只不过同时出现的话参数默认保存在--sum两个杠的
#参数中
#其中后边跟着很多参数,更深入的用法需要知道各个参数的意义
parser.add_argument('-s','--sum', dest='accumulate', action='store_const',const=sum, default=max, help='sum the integers (default: find the max)') 

#进行命令行的解析
args = parser.parse_args() 

#调用查看传入参数的值,就和调用类的方法一样args.integers或args.sum
print(args.accumulate(args.integers))

#常见的调用方式有:
#python prog.py -h
#python prog.py 1 2 3 4 --sum
#python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
#..........


 

 

你可能感兴趣的:(Python杂谈)