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使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python数据类型转换实现方法

    Python数据类型转换实现方法

    这篇文章主要介绍了Python数据类型转换的实现,有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可
    2022-12-12
  • 用pycharm开发django项目示例代码

    用pycharm开发django项目示例代码

    这篇文章主要介绍了用pycharm开发django项目示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • pyodps中的apply用法及groupby取分组排序第一条数据

    pyodps中的apply用法及groupby取分组排序第一条数据

    这篇文章主要介绍了pyodps中的apply用法及groupby取分组排序第一条数据,问绽放围绕主题展开详细的内容介绍,具有一定的参考价值需要的小伙伴可以参考一下
    2022-05-05
  • matplotlib事件处理基础(事件绑定、事件属性)

    matplotlib事件处理基础(事件绑定、事件属性)

    这篇文章主要介绍了matplotlib事件处理基础(事件绑定、事件属性),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 解决Pytorch dataloader时报错每个tensor维度不一样的问题

    解决Pytorch dataloader时报错每个tensor维度不一样的问题

    这篇文章主要介绍了解决Pytorch dataloader时报错每个tensor维度不一样的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python 文件操作删除某行的实例

    python 文件操作删除某行的实例

    下面小编就为大家带来一篇python 文件操作删除某行的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • python生成指定长度的随机数密码

    python生成指定长度的随机数密码

    这篇文章主要介绍了python生成指定长度的随机密码示例,密码使用数字和字母组合,大家参考使用吧
    2014-01-01
  • django-celery-beat搭建定时任务的实现

    django-celery-beat搭建定时任务的实现

    本文主要介绍了django-celery-beat搭建定时任务的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python简单实现网页内容抓取功能示例

    Python简单实现网页内容抓取功能示例

    这篇文章主要介绍了Python简单实现网页内容抓取功能,结合实例形式分析了Python基于urllib模块的网页请求、内容读取等相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • Python 文件操作实现代码

    Python 文件操作实现代码

    文件操作是程序设计中不可或缺的重要部分。Python通过一个内置函数open来打开文件。
    2009-10-10

最新评论