博客
关于我
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+SQL实战:京东用户行为数据分析案例解析(上)
    查看>>
    Python+SQL实战:京东用户行为数据分析案例解析(下)
    查看>>
    PYTHON+Twisted+sqlanydb=ABORT()
    查看>>
    Python函数之返回值、作用域和局部变量
    查看>>
    Python+统计学 | 探索常用的数据分析统计分布
    查看>>
    python, selenium中用于切换帧的函数
    查看>>
    python函数
    查看>>
    python----线程、进程、协程的区别及多线程详解
    查看>>
    python---5
    查看>>
    python---使用celery分布式系统异步发送短信(云通讯)来验证登录
    查看>>
    python--003--百分号字符串拼接、format
    查看>>
    Python--10、线程
    查看>>
    Python--Redis实战:第四章:数据安全与性能保障:第4节:复制
    查看>>
    python--基本代码规范
    查看>>
    Python--抽象类接口类
    查看>>
    PYTHON--欧拉习题二
    查看>>
    python--高级应用总结
    查看>>
    python-520表白代码,我看谁说程序员不懂浪漫,送你几套表白代码,一步到位
    查看>>
    Python-Asyncio TypeError:无法在‘;等待‘;表达式中使用对象DICT
    查看>>