千家信息网

Python命令行解析器argparse怎么使用

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要讲解了"Python命令行解析器argparse怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python命令行解析器argpar
千家信息网最后更新 2025年01月16日Python命令行解析器argparse怎么使用

这篇文章主要讲解了"Python命令行解析器argparse怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python命令行解析器argparse怎么使用"吧!

    第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怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

    参数 命令 对象 方法 信息 名称 帮助 数据 模块 多个 程序 类型 存储 学习 普通 内容 动作 字符 字符串 实例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州跨境电商软件开发 太平洋网络安全保险条款 张店管理库存软件开发公司 当当商品数据接口软件开发 无法与代理服务器建立连接 网络安全评估管理 网络安全习题答案沈鑫剡 数据库中的元素是什么 网络安全检查工作流程 求生之路怎么进药抗服务器 delphrpc服务器不可用 上海神兵信息安全签名服务器 北京清为源网络技术有限公司 上海市志行合力网络技术有限公司 简短网络安全内容 企业管理器数据库剥离 阳江2011服务器散热器批发 辽宁网络安全和信息化领导小组 论网络安全法 网络安全知识培训感想 中国国防网络安全上市公司 艾斯维尔数据库一年多少钱 什么什么管理系统软件开发 论文 数据库中一次插入多行语句 抨击软件开发专业 星际战甲链接服务器出错 网络技术专业发展 下载了软件开发者知道吗 数据库安装提示错误2 工业通讯网络技术
    0