argparse
是一个Python的内建模块,用法可以参考官方文档:https://docs.python.org/3/library/argparse.html
主要步骤:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--weights', type=str, default='best.pt', help='model weights path')
parser.add_argument(...)
...
args = parser.parse_args()
print(args.weights)
add_argument() 方法:
.add_argument(name or flags
…[, action
][, nargs
][, const
][, default
][, type
][, choices
][, required
][, help
][, metavar
][, dest
])
name or flags
- 一个参数名或者选项列表名,例如 foo 或 -f, --foo,带杠的是可选参数,否则是位置参数action
- 当参数在命令行中出现时将触发的动作nargs
- 该参数包含的值的个数,*:元素个数≥ 0
,+:元素个数≥ 1
,? :元素个数自动分配
const
- 仅用于 action=store_const、action=append_const、nargs=’?’default
- 如果命令行中不存在该参数,则以此作为默认值(本文不考虑命名空间)type
- 该参数的类型,会被Parser自动转换,默认为字符串choices
- 选项列表,如 choices=[‘rock’, ‘paper’, ‘scissors’] 或者 choices=range(1, 4),则该参数只能被赋值为其中某一个required
- 此参数是否必选help
- 简单描述该参数的用途metavar
- 在help中显示的参数值示例dest
- 用于指定实际调用的参数名,一般和命令行中的参数名不同action 类型:
action='store'
默认动作,不需要指定,即该参数使用存储的值(命令行给定值或默认值)action='store_const'
该参数使用const选项指定的常量action='store_true'
和 action='store_false'
该参数使用True或者Falsetype 类型:
简单字符串
读入内建类型
和函数
都是可用的示例:
parser.add_argument('-f', '--foo') # 可选参数
parser.add_argument('foo', type=int, choices=range(5, 10)) # 必选参数
parser.add_argument('--foo', action='store_const', const=42) # 取决于是否被触发
parser.add_argument('--bar', action='store_false')
parser.add_argument('--foo', action='append') # 命令行中可以多次给值
parser.add_argument("foo", nargs="+", type=str) # 至少给一个值,一定转为列表类型
parser.add_argument("foo", nargs="*", type=str) # 可以是空值,生成空列表
parser.add_argument('--foo', nargs='?', const='c', default='d') # 自动转为单个元素或列表
parser.add_argument('--foo', dest='bar') # 调用的时候要用 args.bar