【Python】Parser通常用法

这篇具有很好参考价值的文章主要介绍了【Python】Parser通常用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 介绍

Parser在Python程序中经常使用,使用前需要import argparse,简单来说argparse模块就是对参数进行设置。专业说法如下:

  • argparse 模块提供轻松编写用户友好的命令行接口。
  • 程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。
  • argparse 模块会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。

2. 使用方法

2.1 实例化ArgumentParser()

实例化创建一个ArgumentParser对象。

  • 示例:
import argparse 

if __name__ == "__main__" : 
    parser = argparse.ArgumentParser(description='parser example')
  • 参数解析:
    description:大多数对 ArgumentParser 构造方法的调用都会使用 description= 关键字参数。这个参数简要描述这个程度做什么以及怎么做。在帮助消息中,这个描述会显示在命令行用法字符串和各种参数的帮助消息之间。

2.2 添加参数add_argument()

使用add_argument()函数增加参数并设置值。

  • 示例:
import argparse 

if __name__ == "__main__" : 
    parser = argparse.ArgumentParser(description='parser example')
    parser.add_argument('--seed', default=1, type=int, help='Random seed')
    parser.add_argument('--lr', default=0.1, type=float, help='learning rate')
    parser.add_argument('--datapath', default='../../dataset/', type=str, help='dataset path')
    parser.add_argument('--resume', action='store_true', help='resume from checkpoint')
  • 参数解析:
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

name or flags :选项字符串的名字或者列表。

action: 命令行遇到参数时的动作,参数选择有 store_true 或store_false。

store_const:表示赋值为const。

append:将遇到的值存储成列表,也就是如果参数重复则会保存多个值。

append_const:将参数规范中定义的一个值保存到一个列表。

count:存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析。

nargs :应该读取的命令行参数个数,可以是具体的数字,或者是?号,当不指定值时对于 Positional argument 使用 default—对于 Optional argument 使用 const;或者是 * 号,表示 0 或多个参数;或者是 + 号表示 1 或多个参数。

const-actionnargs 所需要的常量值。

default: 不指定参数时的默认值。

type: 命令行参数应该被转换成的类型。

choices:参数可允许的值的一个容器。

required:可选参数是否可以省略 (仅针对可选参数)。

help:参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息。

metavar:在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称。

dest: 解析后的参数名称,默认情况,对于可选参数选取最长的名称,中划线转换为下划线。

2.3 解析参数parse_args()

ArgumentParser 通过 parse_args() 方法解析参数。它将检查命令行,把每个参数转换为适当的类型然后调用相应的操作。在大多数情况下,这意味着一个简单的 Namespace 对象将从命令行解析出的属性构建。

  • 示例:
import argparse 

if __name__ == "__main__" : 
    parser = argparse.ArgumentParser(description='parser example')
    parser.add_argument('--seed', default=1, type=int, help='Random seed')
    parser.add_argument('--lr', default=0.1, type=float, help='learning rate')
    parser.add_argument('--datapath', default='../../dataset/', type=str, help='dataset path')
    parser.add_argument('--resume', action='store_true', help='resume from checkpoint')

    args = parser.parse_args()

3. 案例实践

完整程序:

import argparse 

if __name__ == "__main__" : 
    parser = argparse.ArgumentParser(description='parser example')
    parser.add_argument('--seed', default=1, type=int, help='Random seed')
    parser.add_argument('--lr', default=0.1, type=float, help='learning rate')
    parser.add_argument('--datapath', default='../../dataset/', type=str, help='dataset path')
    parser.add_argument('--resume', action='store_true', help='resume from checkpoint')

    args = parser.parse_args()
    print('1: ', args.lr)
    print('2: ', args.resume)
    print('3: ', args)

run:

python parser_test.py

python中parser怎么用,Python,python,开发语言

python parser_test.py --lr 0.3 --resume

python中parser怎么用,Python,python,开发语言

4. 参考

Python】Parser 用法-通俗易懂!

python ----Parser使用文章来源地址https://www.toymoban.com/news/detail-598189.html

到了这里,关于【Python】Parser通常用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​

    源代码:  Lib/html/parser.py 这个模块定义了一个 HTMLParser 类,为 HTML(超文本标记语言)和 XHTML 文本文件解析提供基础。 class  html.parser.HTMLParser( * ,  convert_charrefs=True ) 创建一个能解析无效标记的解析器实例。 如果  convert_charrefs  为  True  (默认值),则所有字符引用(  scr

    2024年02月04日
    浏览(32)
  • caused by: net.sf.jsqlparser.parser.parseexception

    net.sf.jsqlparser.parser.ParseException: Encountered unexpected token 错误通常表示 SQLParser 在解析 SQL 语句时遇到了一个意外的标记。这通常是由以下原因导致的: SQL 语法错误:SQLParser 遵循标准的 SQL 语法规则,如果您的 SQL 语句存在语法错误,例如拼写错误、缺少、不正确的标点符

    2024年02月07日
    浏览(46)
  • 解决SystemExit: 2,args = parser.parse_args() 的问题,

    报错原因: argparse 是一个旨在解析从命令行传递的参数的模块,您可以使用 argparse 来编译 参数内容。如果 argparse 认为参数无效,则退出,这通常在 python 中通过调用 sys.exit() 来完成,这会引发 SystemExit 错误,这就是您所看到的。 所以问题是你试图从交互式解释器(看起来像

    2024年02月12日
    浏览(31)
  • 高云FPGA系列教程(9):cmd-parser串口命令解析器移植

    本文是高云FPGA系列教程的第9篇文章。 上一篇文章介绍片上ARM Cortex-M3硬核处理器 串口外设 的使用,演示轮询方式和中断方式接收串口数据,并进行回环测试。 本文在上一篇工程的基础上,移植cmd-parser串口命令解析器,到高云GW1NSR-4C ARM处理器上,实现3个命令:

    2024年02月08日
    浏览(31)
  • jupyter 使用parser = argparse.ArgumentParser即add_argument()报错

    根据你提供的代码,你正在尝试使用 argparse 解析命令行参数,并将结果存储在 args_py 变量中 如果你在 Jupyter Notebook 或 JupyterLab 中运行这段代码,并且想要传递命令行参数给 argparse,那么这个方法可能会导致与之前提到的相同的问题。即 Jupyter 内核连接信息被错误解析为命令

    2024年02月16日
    浏览(25)
  • parser.parse_args()在docker运行中止运行的解决方法

    在使用paddleocr的模型打包的时候,一直无法正常运行,然后加入logging后发现在 parser.parse_args()处停止运行了。坑了我好几天,天天打包。。。。 将 parser.parse_args() 替换为  parser.parse_known_args()[0] 后代码正常运行。 parser.parse_args()用法介绍:argparse传参模块调用 测试时发现,下

    2024年02月06日
    浏览(52)
  • 解决:net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: “=“ “=“

    Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: \\\"=\\\" \\\"=\\\"     at line 3, column 22. Was expecting one of: 网上看了很多,说是因为MyBatis_Plus框架中,有多租户的功能,MP会进行数据权限的过滤,但是都试了试发现并不生效,记着之前遇到过这个问题,是因为那个包的版本原因

    2024年02月10日
    浏览(36)
  • ffmpeg av_parser_parse2函数分析各种码流测试程序

    ffmpeg av_parser_parse2函数分析各种码流测试程序 ---------------------------------------- author: hjjdebug date: 2023年 07月 14日 星期五 16:14:05 CST date: 曾更新过... ---------------------------------------- 测试程序见后, 可编译运行(ffmpeg v4.4) 我需要一个简单的程序,实现能跟入ffmpeg 库.了解av_parser_parse2的工

    2024年02月16日
    浏览(28)
  • org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping

    今天启动某开源项目时,碰到一个问题 org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping 。 2.1 修改项目目录下缩进格式 在项目下的nacos目录中 application-common.yml 文件中修改缩进格式,每行一致。 2.2 查看并修改Nacos中application-common.yml发布的内容 什么是 Nacos 欢迎来到

    2024年02月11日
    浏览(43)
  • MyBatis报错 Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: “(“ “(“

    MyBatis 使用报错 Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: \\\"(\\\" \\\"(\\\"at line 12, column 24. 问题原因: 原因是因为mybatisplus不识别sql查询语句中的返回使用函数 MyBatis版本升级到v3.5.1以上 错误日志: ApiPostj接口测试时发生错误回显 Mapper接口(传日期格式) Mapper.xml 解

    2024年02月04日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包