博客
关于我
python中argparse模块关于 parse_args() 函数详解(全)
阅读量:798 次
发布时间:2023-03-09

本文共 2156 字,大约阅读时间需要 7 分钟。

argparse命令行解析详解

目录

  • 前言
  • 函数讲解2.1 参数赋值原理2.2 参数类型分类
  • 基本用法
  • 实战讲解4.1 yolo5代码解析4.2 参数解析函数4.3 主函数执行流程
  • 前言

    argparse模块是Python中命令行解析的标准库,广泛应用于机器学习深度学习脚本以及其他需要命令行参数传递的场景。通过argparse,我们可以轻松实现命令行参数的赋值和解析,适用于多种实际应用需求。

    函数讲解

    参数赋值原理

    argparse模块通过add_argument方法来定义和解析命令行参数。每个参数可以指定默认值、类型、帮助信息等属性,支持位置参数和可选参数。

    参数类型分类

    • 位置参数:通过parser.add_argument("a", help="输出a值")定义,执行python test.py 1时,a参数会自动赋值为1。
    • 可选参数:使用parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'yolov5s.pt', help='model path or triton URL'),可选参数可选可不选,默认值为ROOT / 'yolov5s.pt'。

    参数详解表

    参数属性 描述 示例
    action 指定参数的操作类型 action="store_true"表示参数赋值为布尔值
    nargs 指定参数的数量 nargs='+', type=str表示可多选
    count 指定参数出现的次数 action="count"
    default 参数默认值 default="yolov5s.pt"
    type 参数类型 type=int表示整数类型
    choices 可选值类型 choices=[0, 1, 2]
    required 是否为必填参数 required=True
    help 参数说明 help="模型路径或triton URL"
    metavar 参数显示名称 metavar=("输入路径", "描述")
    dest 参数存储变量名 dest="model_path"
    version 版本信息 version="1.0.0"

    基本用法

    位置参数示例

    import argparseparser = argparse.ArgumentParser(description="输出平方数")parser.add_argument("square", type=int)args = parser.parse_args()print(args.square ** 2)

    执行python test.py 2,输出4。

    可选参数示例

    import argparseparser = argparse.ArgumentParser(description="输出a值")parser.add_argument("a")args = parser.parse_args()print(args.a)

    执行python test.py 2,输出2。

    实战讲解

    yolo5代码解析

    yolov5的主函数为:

    if __name__ == "__main__":    opt = parse_opt()    main(opt)

    parse_opt()函数负责解析命令行参数,返回参数对象opt。

    参数解析函数

    def parse_opt():    parser = argparse.ArgumentParser()    parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'yolov5s.pt', help='model path or triton URL')    parser.add_argument('--source', type=str, default=ROOT / 'data/images', help='file/dir/URL/glob/screen/0(webcam)')    parser.add_argument('--data', type=str, default=ROOT / 'data/coco128.yaml', help='(optional) dataset.yaml path')    parser.add_argument('--imgsz', '--img', '--img-size', nargs='+', type=int, default=[640], help='inference size h,w')    opt = parser.parse_args()    # 其他参数处理逻辑    return opt

    主函数执行流程

    def main(opt):    # 检查依赖包安装情况    check_requirements(exclude=('tensorboard', 'thop'))    # 执行运行函数    run(**vars(opt))

    通过以上解析,可以清晰地理解argparse模块在命令行参数处理中的核心作用及其应用场景。

    转载地址:http://wilfk.baihongyu.com/

    你可能感兴趣的文章
    python_对象的基本组成和内存示意图---python工作笔记016
    查看>>
    python_开发环境介绍_交互模式使用_IDE介绍和使用---python工作笔记010
    查看>>
    python_引用的本质_栈内存和堆内存_内存示意图---python工作笔记017
    查看>>
    python_标识符_帮助系统的使用_命名规则---python工作笔记018
    查看>>
    python_海龟绘图_坐标系问题_画笔各种方法---python工作笔记013
    查看>>
    python_海龟绘图_画出奥运五环图---python工作笔记014
    查看>>
    Python_生产者消费者模型、管道、数据共享、进程池
    查看>>
    python_程序格式_缩进_行注释_段注释---python工作笔记012
    查看>>
    python_程序的构成---python工作笔记015
    查看>>
    python_超文本传输协议
    查看>>
    Python_集合
    查看>>
    Python|AsyncIO|TypeError:应为协程
    查看>>
    python——random模块的应用
    查看>>
    Python——基础知识细节
    查看>>
    Python——正则表达式
    查看>>
    Python—面向对象2
    查看>>
    Python“和“带整数的运算符
    查看>>
    Python“文件存在“制作目录时出错
    查看>>
    Python“文件存在“制作目录时出错
    查看>>
    Python、IMAP 和 GMail.将消息标记为已查看
    查看>>