文章目录
- 前言
- 一、argparse是什么?
- 二、使用步骤
- 1.导包
- 2. 使用流程
- 3.参数
- 位置参数-positional arguments
- 可选参数-optional arguments
- 三. 参考
前言
我在深度学习的过程中, 经常用到python argparse模块,我对其进行的整理总结。后续会进一步的修改和添加内容。部分内容来源于网络,已经说明具体出处。
一、argparse是什么?
argparse 模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。
ref: argparse — 命令行选项、参数和子命令解析器
二、使用步骤
1.导包
代码
import argparse
2. 使用流程
argparse简单使用流程主要有三个步骤:
- 创建 ArgumentParser() 对象
- 调用 add_argument() 方法添加参数
- 使用 parse_args() 解析添加的参数
代码如下
# 创建ArgumentParser()对象
parser = argparse.AugumentParser()
# 调用add_argument()添加参数
parser.add_argument()
# 使用parse_args()解析参数
args = parser.parse_args()
3.参数
ref: python之Argparse模块
位置参数-positional arguments
添加位置参数声明的参数名前缀不带-或–,按照顺序进行解析,在命令中必须出现,否则报错
parser.add_argument("a")
parser.add_argument("b")
parser.add_argument("c")
可选参数-optional arguments
添加可选参数声明的参数名前缀带-或–,前缀是-的为短参数,前缀是–是长参数,两者可以都有,也可以只有一个,短参数和长参数效果一样。可选参数的值接在位置参数的后面,不影响位置参数的解析顺序。
parser.add_argument('--batch-size', type=int, default=64, metavar='N', help='input batch size for training (default: 64)')
parser.add_argument('--momentum', type=float, default=0.5, metavar='M', help='SGD momentum (default: 0.5)')
parser.add_argument('--no-cuda', action='store_true', default=False, help='disables CUDA training')
parser.add_argument('--save-model', action='store_true', default=False, help='For Saving the current Model')
- action:
- “store_true”:触发action时为真,不触发则为假。
- “store_false”: 触发action时为假,不触发则为真。
- type: 参数类型,默认是str
- help: 提示信息
- choice=[]:可选值
- default: 默认值
- metavar: 当 ArgumentParser 生成帮助消息时,它需要用某种方式来引用每个预期的参数。 默认情况下,ArgumentParser 对象使用 dest 值作为每个对象的 “name”。 默认情况下,对于位置参数动作,dest 值将被直接使用,而对于可选参数动作,dest 值将被转为大写形式。
- nargs: 参数个数
- “*”: 参数零个或多个
- “+”: 参数一个或多个
- “?”: 参数零个或一个
parser.add_argument('--mode', type=str, default=r'train',choices=['train','detect'], help='')
三. 参考
参考链接: