Python命令行解析器argparse详解

目录
  • 第1章 argparse简介
    • 1.1 解析
    • 1.2 argparse定义三步骤
    • 1.3  代码示例
  • 第2章 参数详解
    • 2.1 创建一个命令行解析器对象:ArgumentParser()
    • 2.2 为命令行添加参数: add_argument() 方法
    • 2.3 解析命令行的参数:parse_args()
    • 2.4 命令行参数的输入
    • 2.5 命令行参数的使用
  • 总结

第1章 argparse简介

1.1 解析

argparse 模块是 Python 内置的一个用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口。

argparse能够帮助程序员为模型定义参数、通过sys.argv 解析命令行参数。模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。

1.2 argparse定义三步骤

(1)创建一个命令行解析器对象——创建 ArgumentParser() 对象

(2)给解析器添加命令行参数   ——调用add_argument() 方法添加参数

(3)解析命令行的参数              ——使用 parse_args() 解析添加的参数

1.3  代码示例

# 导入库
import argparse

# 1. 定义命令行解析器对象
parser = argparse.ArgumentParser(description='test')

# 2. 添加命令行参数
parser.add_argument('--sparse', action='store_true', default=False, help='GAT with sparse version or not.')
parser.add_argument('--seed', type=int, default=72, help='Random seed.')
parser.add_argument('--epochs', type=int, default=10000, help='Number of epochs to train.')

# 3. 从命令行中结构化解析参数
args = parser.parse_args()
print(args.sparse)
print(args.seed)
print(args.epochs)

第2章 参数详解

2.1 创建一个命令行解析器对象:ArgumentParser()

使用 argparse 的第一步是创建一个 ArgumentParser 对象:

parser = argparse.ArgumentParser(description='test')

ArgumentParser 实例化对象将包含把命令行解析成 Python 数据类型所需的全部信息,

(1)描述description

大多数对 ArgumentParser 构造方法的调用都会使用 description= 关键字参数。

这个参数简要描述这个程度做什么以及怎么做。

在帮助消息中,这个描述会显示在命令行用法字符串和各种参数的帮助消息之间。

2.2 为命令行添加参数: add_argument() 方法

(1)添加命令行参数的案例

给一个 ArgumentParser 添加程序参数信息,是通过调用 add_argument() 方法完成的。

通常,这些调用指定 ArgumentParser 如何获取命令行字符串并将其转换为对象。

这些信息在 parse_args() 调用时被存储在ArgumentParser实例化对象中,以供后续使用。

例如:

parser.add_argument('--sparse', action='store_true', default=False, help='GAT with sparse version or not.')
parser.add_argument('--seed', type=int, default=72, help='Random seed.')
parser.add_argument('--epochs', type=int, default=10000, help='Number of epochs to train.')

add_argument() 方法定义如何解析命令行参数的呢?

(2)add_argument() 方法定义如何解析命令行参数

ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][,

choices][, required][, help][, metavar][, dest])

每个参数解释如下:

name or flags - 普通参数或flag参数选项参数的名称或标签,例如 foo 或者 -f, --foo。Flag参数不需要指定参数值,只需要带有参数名即可。

action - 命令行遇到flags参数时的动作。有两个常见的动作,store_true:设定flag参数为true;store_false:设定flag参数为False。

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

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

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

required - 是否为必选参数或可选参数。

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

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

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

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

const - action 和 nargs 所需要的常量值。

store_const,表示赋值为const;

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

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

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

2.3 解析命令行的参数:parse_args()

ArgumentParser对象通过 parse_args() 方法解析命令行的参数。

它将检查命令行中每个参数,转换为适当的数据类型,然后调用相应的操作,并把参数结构化后存放在对象args中。

args = parser.parse_args()

在脚本中,通常 parse_args() 会被不带参数调用,而 ArgumentParser 将自动从 sys.argv 中确定命令行参数。

2.4 命令行参数的输入

xxx --sparse --seed 0  --epochs 1000

其中,--seed和--epochs为普通参数,需要指定具体的数据。

--sparse为flag参数,不需要指定具体的值,指定该参数名后的具体数值,取决于其action的定义。

如果action = store_true时,--sparse表明参数值设定为true

如果action = store_false时,--sparse表明参数值设定为false

2.5 命令行参数的使用

print(args.sparse)
print(args.seed)
print(args.epochs)

总结

到此这篇关于Python命令行解析器argparse详解的文章就介绍到这了,更多相关Python令行解析器argparse内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python中最好用的命令行参数解析工具(argparse)

    Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要解析一个命令行参数解析的模块来帮你做这个苦力活. Python 本身就提供了三个命令行参数解析模块,我这里罗列一下它们的大致情况供你了解. getopt,只能简单的处理命令行参数 optparse,功能强大,易于使用,可以方便地生成标准的.符合Unix/Posix 规范的命令行说明. argparse,使其更加容易的编

  • python argparser的具体使用

    一.正常运行: 咱们随便写个文件: # test.py import argparse ap = argparse.ArgumentParser() ap.add_argument('-i', '--image', help='传入图片文件') args = vars(ap.parse_args()) print(args) 咱们运行一下: python test.py --image './test.png' python test.py -i './test.png' 没问题吧: {'ima

  • Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python用于解析命令行参数和选项的标准模块.argparse模块的作用是用于解析命令行参数. 使用步骤 1.首先导入该模块 2.然后创建一个解析对象 3.然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项 4.最后调用parse_args()方法进行

  • Python 中使用 argparse 解析命令行参数

    目录 1.Python 中的参数解析 2.类型 3.子命令 4.程序架构 使用 argparse 模块为应用程序设置命令行选项. 有一些第三方库用于命令行解析,但标准库 argparse 与之相比也毫不逊色. 无需添加很多依赖,你就可以编写带有实用参数解析功能的漂亮命令行工具. 1.Python 中的参数解析 使用 argparse 解析命令行参数时,第一步是配置一个 ArgumentParser 对象.这通常在全局模块内完成,因为单单_配置_一个解析器没有副作用. import argpars

  • python argparse命令行参数解析(推荐)

    argparse是python用于解析命令行参数和选项的标准模块. 很多时候,需要用到解析命令行参数的程序,目的是在终端窗口输入训练的参数和选项. argparse 模块可以让人轻松编写用户友好的命令行接口. 程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数. argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息. test.py # -*- coding: utf-8 -*- import argparse #

  • Python命令行解析器argparse详解

    目录 第1章 argparse简介 1.1 解析 1.2 argparse定义三步骤 1.3  代码示例 第2章 参数详解 2.1 创建一个命令行解析器对象:ArgumentParser() 2.2 为命令行添加参数: add_argument() 方法 2.3 解析命令行的参数:parse_args() 2.4 命令行参数的输入 2.5 命令行参数的使用 总结 第1章 argparse简介 1.1 解析 argparse 模块是 Python 内置的一个用于命令项选项与参数解析的模块,argp

  • 详解Python命令行解析工具Argparse

    最近在研究pathon的命令行解析工具,argparse,它是Python标准库中推荐使用的编写命令行程序的工具. 以前老是做UI程序,今天试了下命令行程序,感觉相当好,不用再花大把时间去研究界面问题,尤其是vc++中尤其繁琐. 现在用python来实现命令行,核心计算模块可以用c自己写扩展库,效果挺好. 学习了argparse,在官方文档中找到一篇toturial,简单翻译了下. http://docs.python.org/2/howto/argparse.html#id1 Argparse

  • Python 命令行解析工具 argparse基本用法

    在工作中,我们经常需要从命令行当中解析出指定的参数,而 Python 也提供了相应的标准库来做这件事情,比如 sys, optparse, getopt, argparse.这里面功能最强大的莫过于 argparse,下面就来看看它用法. import argparse # 使用 argparse 分为以下几步 # 1. 创建命令行解析器对象 parse = argparse.ArgumentParser( description="这是命令行解析器" ) # 2.给解析器添加命令行参

  • 用什么库写 Python 命令行程序(示例代码详解)

    一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse . docopt . click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变.本文作为本次旅程的终点,希望从一个更高的视角对这些库进行横向对比,总结它们的异同点和使用场景,以期在应对不同场景时能够分析利弊,选择合适的库为己所用. 本系列文章默认使用 Python 3 作为解释器进行讲解.若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ 二.设计理念 在讨论

  • Python命令行解析模块详解

    本文研究的主要是Python命令行解析模块的相关内容,具体如下. Python命令行常见的解析器有两种,一是getopt模块,二是argparse模块.下面就解读下这两种解析器. getopt模块 这个模块可以帮助脚本解析命令行参数,一般是sys.argv[1:].它遵循着Unix的getopt()函数相同的约定(用-/--指定命令参数).这个模块提供两个函数(getopt.getopt()/getopt.gnu_getopt())和一个参数异常(getopt.GetoptError). 这里重

  • python命令行解析之parse_known_args()函数和parse_args()使用区别介绍

    在python中,命令行解析的很好用, 首先导入命令行解析模块 import argparse import sys 然后创建对象 parse=argparse.ArgumentParser() 然后增加命令行 parse.add_argument("--learning_rate",type=float,default=0.01,help="initial learining rate") parse.add_argument("--max_steps&

  • php命令行写shell实例详解

    php 可以像java perl python 那样运行,今天发现如果我早早知道这个,或许我不会去学习java 和 python 当年学java不过为了一个程序放在服务器上,不停的跑啊跑,原来 php 也可以. php -h Usage: php [options] [-f] <file> [--] [args...] php [options] -r <code> [--] [args...] php [options] [-B <begin_code>] -R &l

  • Python命令启动Web服务器实例详解

    Python命令启动Web服务器实例详解 利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录的路径下,输入命令: python -m Web服务器模块 [端口号,默认8000] 例如: python -m SimpleHTTPServer 8080 然后就可以在浏览器中输入 http://localhost:端口号/路径 来访问服务器资源. 例如: http://localhost:8080/index.htm(当然index.htm文件得自己创建) 其他机器

  • MySQL 设计和命令行模式下建立详解

    MySQL 设计和命令行模式下建立详解 系列文章: MySQL 设计和命令行模式下建立详解 C++利用MySQL API连接和操作数据库实例详解 1.数据表的设计 MySQL数据库管理系统(DBMS)中,包含的MySQL中定义数据字段的类型对你数据库的优化是非常重要的.MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 下面以大学熟悉的学生选课管理系统中用到的数据库为例,来设计相应的数据表.主要有三张表:学生表,课程表和选课表. 学生表设计: 字段(Field) 类

  • Linux终端命令行的常用快捷键详解

    history 显示命令历史列表 ↑(Ctrl+p) 显示上一条命令 ↓(Ctrl+n) 显示下一条命令 !num 执行命令历史列表的第num条命令 !! 执行上一条命令 !?string? 执行含有string字符串的最新命令 Ctrl+r 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令 Ctrl+s 与Ctrl+r类似,只是正向检索 Alt+< 历史列表第一项 Alt+> 历史列表最后一项 Ctrl+f 光标向前移动一个字符,相当与-> Ct

随机推荐