- 前言
- argparse包使用
- 1 创建ArgumentParser对象
- 2 为ArgumentParser对象添加运行参数项
- 3 解析ArgumentParser对象,获得argparse.Namespace对象
- 4 全过程
- 5 参数项说明
- 使用解析后得到的argparse.Namespace对象
本篇记录一下在python中使用argparse设置运行参数。
argparse
是python自带的包
argparse包的使用如下:
1 创建ArgumentParser对象import argparse
parser = argparse.ArgumentParser()
2 为ArgumentParser对象添加运行参数项
使用add_argument()
方法添加运行时的可选参数:
parser.add_argument('--dataset', type=str, required=True, help='dataset root path')
parser.add_argument('-r', '--resume', action='store_true', default=False,
help='resume training from last epoch')
以上面两个比较典型的用法为例: ①parser.add_argument('--dataset', type=str, required=True, help='dataset root path')
--dataset
参数,表示运行时输入该项的格式为python main.py --dataset 'path_to_dataset'
; type
参数,表示限定了输入数据格式,比如str
; required
参数,表示运行时是否必须设置该项; help
参数,提示使用方法。
②parser.add_argument('-r', '--resume', action='store_true', default=False, help='resume training from last epoch')
-r, --resume
参数,表示运行时输入该项的格式可为python main.py -r
和python main.py --resume
,是等效的; action
参数,表示该项是一个触发项; default
参数,表示该项的默认值。
第5部分会说明①②的具体区别。
3 解析ArgumentParser对象,获得argparse.Namespace对象通过parse_args
方法解析,获得argparse.Namespace
对象:
args = parser.parse_args()
4 全过程
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--dataset', type=str, required=True, help='dataset root path')
parser.add_argument('-r', '--resume', action='store_true', default=False,
help='resume training from last epoch')
args = parser.parse_args()
5 参数项说明
parser.add_argument('--dataset', type=str, required=True, help='dataset root path')
说明运行时必须(required)为参数--dataset
输入一个str
值。 运行方法:
parser.add_argument('-r', '--resume', action='store_true', default=False, help='resume training from last epoch')
说明默认该参数为False
(default),运行时可以输入-r, --resume
,并且不需要提供值,因为该参数会变成True
(store_true)
在上面的代码最后加入一句:
print(args)
然后在终端运行该.py文件:
python main.py --dataset '~/MSCOCO' -r
# Namespace(dataset='~/MSCOCO', resume=True)
如果要使用解析后的参数,可以通过类成员的方式调用该参数:
print(args.dataset, args.resume)