文章目录

  • 前言
  • 一、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='')

三. 参考

参考链接: