介绍argparse的使用【Python标准库】

news2024/11/15 13:57:15

文章目录

  • 简介
  • argparse标准库的核心功能介绍
  • Python代码示例
  • 参考

简介

argparse 模块是Python标准库中的一个模块,用于处理命令行参数解析。它的主要作用是帮助开发者创建命令行界面,允许用户指定运行脚本时的参数,从而定制脚本的行为。本篇博客是博主自己的学习心得,简要介绍了argparse 模块的基本使用,并提供了相关的Python代码示例以供参考。

argparse标准库的核心功能介绍

argparse 模块的使用规范一般包含以下三个步骤:

  1. 实例化一个argparse.ArgumentParser对象;
  2. 调用ArgumentParser的类方法add_argument()添加位置参数【pisition argment】或者可选参数【option argment】;
  3. 调用ArgumentParser的类方法parse_args() 解析参数。
    以下总结了Python标准库中argparse模块中argparse.ArgumentParser()ArgumentParser.add_argument()以及ArgumentParser.parse_args()的作用和用法:
类/方法作用和用法
argparse.ArgumentParser()创建命令行解析器对象。用于定义和管理命令行参数,生成用户友好的帮助文档,并解析用户提供的参数。
ArgumentParser.add_argument()用于在ArgumentParser对象中定义和配置命令行参数,包括位置参数和选项参数的名称、帮助文档、默认值等。
ArgumentParser.parse_args()解析用户在命令行中提供的参数,并返回一个命名空间对象,其中包含了用户提供的参数的值。

以下是 argparse.ArgumentParser() 中常用参数的作用和说明:

参数作用和说明
prog程序的名称,通常自动从 sys.argv[0] 获取,也可以手动指定。
usage程序的使用信息,通常自动从参数定义中生成。
description程序的描述信息,通常用于生成帮助文档。
epilog帮助文档的结尾信息。
formatter_class帮助文档格式化类,默认为 argparse.HelpFormatter
prefix_chars选项参数前缀字符,默认为 '-'
fromfile_prefix_chars指定读取参数值的文件的前缀字符,默认为 None
argument_default参数的默认值,通常为 None
conflict_handler用于处理参数冲突的函数,默认为 'error'
add_help是否自动添加 -h--help 选项用于显示帮助信息,默认为 True
parents一个 ArgumentParser 对象的列表,用于包含其他解析器的参数。


以下是 add_argument() 方法中常用参数的作用和说明:

参数作用和说明
*name_or_flags参数的名称或选项标志。通常,位置参数使用名称,选项参数使用标志。
action指定参数的行为。【‘store’, ‘store_const’, ‘store_true’, ‘append’, ‘append_const’, ‘count’, ‘help’, ‘version’】
nargs参数的个数,可以是固定值,如 1,或 * 表示零个或多个,或 + 表示至少一个。
const一个常数值,用于与参数的 action 一起使用,如 store_const
default参数的默认值,如果用户未提供参数,则使用默认值。
type参数的类型,如 intfloatstr 等。
choices限制参数的取值范围,可以是一个列表或元组。
required指定参数是否必须提供,通常是 TrueFalse
help参数的帮助文档,将在用户请求帮助时显示。
metavar在帮助文档中显示参数的占位符,用于描述参数的值。
dest指定结果命名空间中使用的属性名称

在这里插入图片描述

注意:

  • parse_args() 解析后将返回一个存储有add_argument()添加的所有参数的argparse.Namespace类示例,通过读取这个类示例的属性,我们就可以得到相关的参数和值。
  • add_argument()方法会自动添加一组默认参数(--help-h),用户不能再次通过add_argument()方法添加这组参数,否则会报错。错误信息如下:argparse.ArgumentError: argument -h/--help: conflicting option strings: -h, --help在这里插入图片描述

Python代码示例

下方程序将从终端接受一个或者一系列整数并生成总和或最大值

import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=max,
                    help='sum the integers (default: find the max)')

args = parser.parse_args()
print(args.accumulate(args.integers))

在这里插入图片描述

参考

  1. Python文档:Argparse Tutorial
  2. Python文档:argparse — Parser for command-line options, arguments and sub-commands

收集整理和创作不易, 若有帮助🉑, 请帮忙点赞👍➕收藏❤️, 谢谢!✨✨🚀🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1111016.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1019hw

登录窗口头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QToolBar> #include <QMenuBar> #include <QPushButton> #include <QStatusBar> #include <QLabel> #include <QDockWidget>//浮动窗口…

2023年中国城市交通数智化发展趋势分析:城市交通数智化渗透率将达到31.0% [图]

城市交通数智化是指将自动化技术、信息技术、通信技术、数字化和智能化技术综合应用于城市交通管理领域&#xff0c;建立实时、准确、高效的城市交通管理体系&#xff0c;提升城市交通管理能力和通行效率。城市交通数智化主要应用场景包括在城市道路、交叉口、隧道、快速路、交…

React TypeScript安装npm第三方包时,些包并不是 TypeScript 编写的

npm install types/包名称 例如&#xff1a;npm install types/jquery 学习链接

C1N短网址 | 核心专利(2) - 防止程序脚本访问短链接

1. 短链接介绍 短链接是一种缩短了URL长度的链接&#xff0c;通常由网址缩短服务提供商生成。短链接可以将长URL缩短为更短的URL&#xff0c;使其更易于分享和传播。短链接通常由一些字母、数字和特殊字符组成&#xff0c;可以通过点击或复制粘贴来访问原始的长URL。短链接在社…

Spring Security认证流程分析(6)

1、认证流程分析 Spring Security中默认的一套登录流程是非常完善并且严谨的。但是项目需求非常多样化, 很多时候&#xff0c;我们可能还需要对Spring Secinity登录流程进行定制&#xff0c;定制的前提是开发者先深刻理解Spring Security登录流程&#xff0c;然后在此基础之上…

竞赛 深度学习交通车辆流量分析 - 目标检测与跟踪 - python opencv

文章目录 0 前言1 课题背景2 实现效果3 DeepSORT车辆跟踪3.1 Deep SORT多目标跟踪算法3.2 算法流程 4 YOLOV5算法4.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; *…

Halcon 中查看算子和函数的执行时间

1、在Halcol主窗口的底栏中的第一个图标显示算子或函数的执行时间&#xff0c;如下图&#xff1a; 2、在Halcon的菜单栏中选择【窗口】&#xff0c;在下拉框中选择【打开输出控制台】&#xff0c;进行查看算子或函数的执行时间&#xff0c;如下图&#xff1a;

「神奇的锚点定位:探索UniApp中实现滚动定位效果,与1024程序员节同欢,解析技术之美」

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 文章简介 &#x1f4d8; 文章背景 &#…

小程序中如何使用自定义组件应用及搭建个人中心布局

一&#xff0c;自定义组件 从小程序基础库版本 1.6.3 开始&#xff0c;小程序支持简洁的组件化编程。所有自定义组件相关特性都需要基础库版本 1.6.3 或更高。 开发者可以将页面内的功能模块抽象成自定义组件&#xff0c;以便在不同的页面中重复使用&#xff1b;也可以将复杂的…

【Godot引擎开发】简单基础,外加一个小游戏DEMO

博主&#xff1a;_LJaXi 专栏&#xff1a; Godot | 横版游戏开发 Godot 物体规律移动内置虚函数浮点计算浮点数计算数组APIInput单例与自定义单例节点NodeSprite2DArea2DCollisionShape2DKinematicBody2DRigidBody2D Pong游戏场景安排玩家1玩家2小球记分系统文件概要 下面是介绍…

软件工程与计算总结(二十一)软件维护与演化

一.软件维护 1.软件可修改性和软件维护 产品交付给用户并投入运营之后&#xff0c;接下来的工作被看做软件维护。 因为软件不存在“磨损”的情况&#xff0c;所以与其他工程学科相比&#xff0c;软件维护只需要完成少量的使用帮助、故障解决等工作——但并不意味着维护是简单…

IOday8

#include <head.h>//要发送数据的结构体类型 struct msgbuf {long mtype; /* 消息类型*/char mtext[1024]; /* 正文数据 */}; //宏定义正文大小 #define SIZE sizeof(struct msgbuf)-sizeof(long) int main(int argc, const char *argv[]) {key_t key;if((keyft…

oracle-AWR报告生成方法

AWR报告生成方法 1. 以oracle用户登陆服务器 2. 进入到要保存awr报告的目录 3. 以sysdba身份连接数据库 sqlplus / as sysdba4. 执行生成AWR报告命令 ?/rdbms/admin/awrrpt.sql5. 选择AWR报告的文件格式 6. 选择生成多少天的AWR报告 7. 选择报告的快照起始和结束ID 8. 输入生…

Java 对象是什么样子的?

Java 对象是什么样子的&#xff1f; class Student{ int age; String name; }Student s new Student(18, “zhangsan”); 这里的 s 变量&#xff0c;就是我们常说的引用&#xff0c;这里是强引用。指向对象中的 Java对象。 很多人可能认为&#xff0c;堆中存储了 age 18, na…

Linux学习之进程一

目录 一&#xff0c;什么是进程&#xff1f; 1.何为pcb&#xff08;process control block&#xff09;&#xff1f; 2.linux的task_struct 二&#xff0c;了解task_struct的核心字段 标识符 ps指令 getpid指令 ppid&#xff08;parent process id&#xff09; getppid…

DASFAA2023 | 关系数据库和图数据库关键技术融合趋势

编者按&#xff1a; 本期论文导读为大家介绍近年来关系数据库和图数据库关键技术的融合趋势及代表性工作。相关内容来自DASFAA 2023 Tutorial “Fusion of Relational and Graph Database Techniques: An Emerging Trend”&#xff0c;由北京交通大学刘钰博士、中北大学郭青松…

【持续更新】tutorial-Linux-Markdown-etc(Linux、命令、Markdown、md、Tex、LaTex)

1. Linux命令 1.1 常用 查看文件夹下文件数量: ls -l | wc -l7zip: 解压&#xff1a;7z x compressed_file.7z -o/path/to/destination # 注意-o和目标路径是连起来的&#xff0c;没有空格压缩&#xff1a;7z a compressed_file.zip destination_path conda 查看 conda 拥有的…

@JsonCreator(mode = JsonCreator.Mode.DELEGATING) @JsonValue解释

@JsonCreator(mode = JsonCreator.Mode.DELEGATING)public MessageId(Long id) {this.id = id;}<

【中级网络工程师】下午网络配置题

目录 dis ip routing-table 路由表如何查看 静态路由配置&#xff1a; rip和ospf配置 ACL配置 定义ACL过程 关键字traffic-filter inbound 和 traffic-filter outbpund 两种安装模式 DHCP服务 基于全局分配&#xff1a; 基于接口分配&#xff1a; 如何将划分的VLAN和创…

如何确认栈中申请的变量地址

一般一个程序被加载到内存后执行而成为一个进程。进程在内存中是分区域加载的&#xff0c;分别是代码段、数据段、bss段等等。 函数中定义的变量一般存在于栈中。现在我们通过实验验证一下&#xff0c;函数中定义的变量&#xff0c;到底存在与进程哪个位置。 1.测试程序 #in…