第一次写自己的博客,好激动,先偷乐一会。
写在入坑之前:
1.写博客的目的首先是为了加深自己的记忆,其次就是能在某一个知识点提供另一个角度来帮助更多的人理解。难免对很多问题理解的并不够全面,就学到哪写到哪吧~
2.因为自己是小白,所以免不了看大佬的文章然后理解、记录,但凡这种也会在文章中列出引用的文章。
fine,开始正题吧~~
**
本文引用:
1.argparse是什么?
**
argparse是Python中的一个常用模块,主要用于编写命令行接口:对于程序所需要的参数,它可以进行正确的解析。通俗一点说,就是我们在终端敲入命令,命令中所涉及的参数,可以通过利用argparse编写的程序实现对应和配置,并且它可以判断你命令行中设置的相关参数是否符合要求,对此,argparse也有help
和usage
来帮助你更好的敲入命令。
2.argparse三个主要函数:
1. parser = argparse.ArgumentParser()
使用argparse的第一步是创建ArgumentParser对象,就目前我的理解(水平有限:o),该函数就是在开头介绍一下该代码块是用来干什么。
例如:
parser = argparse.ArgumentParser(description='Process some integers.')#处理整型数据
parser = argparse.ArgumentParser(description='prepare UCF101 dataset')#准备ucf101数据集
2. parser.add_argument()
这才是该模块中最重要的函数!
调用add_argument()添加命令行参数信息,这些信息告诉ArgumentParser对象如何处理命令行参数。我们最后在main模块中可以通过调用parse_agrs()来使用这些命令行参数。例如:
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
parser.add_argument('--download_dir', type=str, default='/data2/han_wu/datasets/ucf101')
parser.add_argument('--src_dir', type=str, default='/data2/han_wu/datasets/ucf101/UCF101'
parser.add_argument('--out_dir', type=str, default='/data2/han_wu/datasets/ucf101/rawframes')
parser.add_argument('--frame_path', type=str, default='/data2/han_wu/datasets/ucf101/rawframes')
这两个代码段分别对应上面创建的两个ArgumentParser对象。
3. args = parser.parse_args()
通过调用parse_args()来解析ArgumentParser对象中保存的命令行参数:将命令行参数解析成相应的数据类型并采取相应的动作。
在实际的python脚本中,parse_args()一般并不使用参数。
args = parser.parse_args()
3. parser.add_argument()介绍
ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
函数参数 | 介绍 |
| 参数名或者参数标识 |
| 参数的数据类型 |
| 参数的处理 |
| 参数的默认值 |
| 参数的选择范围 |
| 参数的说明信息 |
各函数参数的具体用法 | |
|
# 可选参数
parser.add_argument('-f', '--foo')
# 必选参数
parser.add_argument('bar')
以-
开始为可选参数,其它的为必选参数。action
:可以对命令行参数进行适当的处理,最常用的动作就是在parse_args()返回的对象中添加一个属性。store
- 存储参数的值。即在parser_args()方法返回的Namespace对象中添加属性,并设定它的值。
parser.add_argument('--foo', action='store_const', const=42)#‘store_const’将命令行参数的值设定为const指定值。
parser.add_argument('--foo', action='store_true')#‘store_true’ and ‘store_false’ - 将命令行参数的值设定为True或者False。
parser.add_argument('--bar', action='store_false')
default
:必选参数和可选的参数的默认值。
parser.add_argument('--length', default='10', type=int)#默认length=10
parser.add_argument('--width', default=10.5, type=int)#默认width=10.5
type
:命令行参数的数据类型,可以是任意Python支持的数据类型。choices
:命令行参数的选取范围。
parser.add_argument('--subset', type=str, default='train', choices=['train', 'val', 'test'])
parser.add_argument('--level', type=int, choices=[1, 2], default=2)
注意:type
,default
,choices
要对应。
help
:命令行参数的帮助信息,可以通过 -h/--help
来显示。