python argparse的使用步骤(全网最全)

 更新时间:2023年04月07日 15:15:44   作者:SL1029_  
argparse是python的一个命令行参数解析包,在代码需要频繁修改参数时,方便使用,主要用法就是在命令行输入自己想要修改的参数,这篇文章主要介绍了python argparse的使用步骤(全网最全),需要的朋友可以参考下

一、前言

在学习深度学习会发现都比较爱用python这个argparse,虽然基本能理解,但没有仔细自己动手去写,因此这里写下来作为自己本人的学习笔记

argparse是python的一个命令行参数解析包,在代码需要频繁修改参数时,方便使用,主要用法就是在命令行输入自己想要修改的参数。

二、关于argparse用法常用框架

import argparse

def get_parser():

    # argparse.ArgumentParser生成argparse对象 description为描述信息,当在命令行输入需要显示帮助信息时,会显示

    parser = argparse.ArgumentParser(description="pytorch unet training")

    # 路径参数设置 help为参数的帮助信息

    parser.add_argument("--data_path", default="./", help="DRIVE root")

    # 预测类别数量 type如果不指定需要输入的是str类型

    parser.add_argument("--num_classes", default=1, type=int)

    # 指定设备使用

    parser.add_argument("--device", default="cuda", help="training device")

    # 指定batch size大小 "-b", "--batch_size"表示两个都可以在命令行使用

    parser.add_argument("-b", "--batch_size", default=4, type=int)

    return parser

if __name__ =='__main__':

    parser = get_parser()

    args = parser.parse_args()

    print(args)

如上get_parser()为本文会介绍的一些使用方法,这个python文件名为python_argparse_test1.py,其中

parser = argparse.ArgumentParser(description="pytorch unet training")用来创建parser对象

add_argument()用来增加参数

args = parser.parse_args()中parse_args()获取解析的参数

1.获取参数列表

当命令行输入python python_argparse_test1.py时,打印args获取到的参数得到:

Namespace(batch_size=4, data_path='./', device='cuda', num_classes=1)

表示这个参数解析器解析到的参数列表

2.获取帮助信息

输入python python_argparse_test1.py -h或者python python_argparse_test1.py --help显示信息,其中usage显示了它的用法,pytorch unet training为创建对象时的description,再下面是各个参数信息与用法

3.命令行修改参数

import argparse

def get_parser():

    # argparse.ArgumentParser生成argparse对象 description为描述信息,当在命令行输入需要显示帮助信息时,会显示

    parser = argparse.ArgumentParser(description="pytorch unet training")

    # 路径参数设置 help为参数的帮助信息 default为默认参数

    parser.add_argument("--data_path", default="./", help="DRIVE root")

    # 预测类别数量 type如果不指定需要输入的是str类型

    parser.add_argument("--num_classes", default=1, type=int)

    # 指定设备使用

    parser.add_argument("--device", default="cuda", help="training device")

    # 指定batch size大小 "-b", "--batch_size"表示两个都可以在命令行使用

    parser.add_argument("-b", "--batch_size", default=4, type=int)

    return parser

if __name__ =='__main__':

    parser = get_parser()

    args = parser.parse_args()

    print("data_path: ",args.data_path)

    print("num_classes: ", args.num_classes)

命令行输入:python python_argparse_test1.py --data_path Desktop --num_classer 4,得到结果如下:

data_path:  Desktop

num_classes:  4

可以看到通过命令行确实修改了参数

4.'_'与"__"的使用

if __name__ =='__main__':

    parser = get_parser()

    args = parser.parse_args()

    print("-b: ",args.b)

    print("--batch_size: ", args.batch_size)

命令行输入python python_argparse_test1.py -b 10 --batch_size 20,这时会报错:

这是因为当'_'和'__'同时存在时,系统默认后者为参数名

把上述代码改为:

if __name__ =='__main__':

    parser = get_parser()

    args = parser.parse_args()

    print("--batch_size: ",args.batch_size)

但命令行不受影响,继续执行命令 python python_argparse_test1.py -b 10得到:

--batch_size:  10

5.type的使用

type会把输入的命令行字符强制转化为type的类型

if __name__ =='__main__':

    parser = get_parser()

    args = parser.parse_args()

    print("--batch_size type: ",type(args.batch_size))

命令行输入:python python_argparse_test1.py --batch_size  '10'得到:

--batch_size type:  <class 'int'>

6.required:用来表示这个参数是否需要提供

parser.add_argument("--num_classes", default=1, type=int, required=True)

如果输入命令python python_argparse_test1.py

这将会报错提示确实需要的参数

python_argparse_test1.py: error: the following arguments are required: --num_classes

7.choices选择参数    

parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'])

如果运行命令:python python_argparse_test1.py -arch cnn

这将会报错

python_argparse_test1.py: error: argument -arch: invalid choice: 'cnn' (choose from 'alexnet', 'vgg')

参考博客:

argparse简要用法总结 | Yunfeng's Simple Blog (vra.github.io)

argparse基本用法

argparse.ArgumentParser()用法解析

到此这篇关于python argparse的使用步骤(全网最全)的文章就介绍到这了,更多相关python argparse使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pytest框架之fixture详解(二)

    Pytest框架之fixture详解(二)

    本文详细讲解了Pytest框架之fixture,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • python PIL中ImageFilter模块图片滤波处理和使用方法

    python PIL中ImageFilter模块图片滤波处理和使用方法

    这篇文章主要介绍PIL中ImageFilter模块几种图片滤波处理和使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • flask 实现上传图片并缩放作为头像的例子

    flask 实现上传图片并缩放作为头像的例子

    今天小编就为大家分享一篇flask 实现上传图片并缩放作为头像的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python socket多线程通讯实例分析(聊天室)

    python socket多线程通讯实例分析(聊天室)

    这篇文章主要介绍了python socket多线程通讯方法,以聊天室程序实例分析了Python基于Socket实现多线程通信的相关技巧,需要的朋友可以参考下
    2016-04-04
  • Python实现在PDF插入页眉页脚

    Python实现在PDF插入页眉页脚

    在处理篇幅较长、结构复杂的PDF文档时,页眉和页脚的设计与插入就显得尤为重要,本文主要介绍了如何使用Python代码操作PDF文档,在PDF文档中插入自定义的页眉和页脚,有需要的可以参考下
    2024-04-04
  • 变长双向rnn的正确使用姿势教学

    变长双向rnn的正确使用姿势教学

    这篇文章主要介绍了变长双向rnn的正确使用姿势,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python数据分析matplotlib的基础绘图使用

    python数据分析matplotlib的基础绘图使用

    这篇文章主要为大家介绍了python数据分析matplotlib的基础绘图使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 如何用Python对数学函数进行求值、求偏导

    如何用Python对数学函数进行求值、求偏导

    这篇文章主要介绍了如何用Python对数学函数进行求值、求偏导问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Python使用机器学习模型实现温度预测详解

    Python使用机器学习模型实现温度预测详解

    使用 Python 可以使用机器学习模型进行温度预测。常用的模型有回归分析、随机森林等。本文就来和大家来了具体实现方法,希望对大家有所帮助
    2023-01-01
  • 如何使用Python设置和读取config.ini文件

    如何使用Python设置和读取config.ini文件

    使用配置文件是一种常见的方法,而INI文件是一种简单而常见的配置文件格式,在本文中,我将介绍如何使用Python设置和读取INI格式的配置文件,需要的朋友可以参考下
    2024-03-03

最新评论