博客
关于我
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中使用cutecharts实现简单的手绘风格的图表
    查看>>
    python中使用dxfgrabber,解析dxf文件信息生成obj文件
    查看>>
    Python中使用ncmbot玩转网易云音乐
    查看>>
    Python中使用PIL快速实现二值图
    查看>>
    Python中使用PIL快速实现灰度图
    查看>>
    Python中使用pip install ncmbot时各种错误解决办法
    查看>>
    Python中使用requests和parsel爬取喜马拉雅电台音频
    查看>>
    Python中使用turtle绘制多个同心圆
    查看>>
    Python中使用turtle绘制棋盘详解
    查看>>