Python笔记:argparse 命令行模块的使用

【Python】argparse模块 argparse模块是Python标准库的一部分,旨在简化命令行接口的创建过程。它允许开发者定义程序接受哪些命令行参数,并自动解析这些参数,同时提供帮助信息和错误处理。以下是关于argparse模块更深入的理解,包括其基本用法、特性以及一些高级功能。 阅读详情

argparse 是什么

argparse是Python标准库中推荐的命令行解析模块,可以轻松地为命令行参数编写用户友好型命令行界面。

测试环境

  • Mac
  • python3

导入模块

#!/usr/bin/env python
# encoding: utf-8

import argparse

必选参数

parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print(args.echo)

测试:

$ python test.py wowo
wowo


可选参数

parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbosity", help="increase output verbosity")
args = parser.parse_args()
if args.verbosity:
        print(args) # Namespace(verbosity='2')
        print(args.verbosity) # 2
        print("verbosity turned on") # verbosity turned on

测试:

$ python test.py --verbosity 2
Namespace(verbosity=‘2’)
2
verbosity turned on


默认无参数错误示例

parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbosity", help="increase output verbosity")
args = parser.parse_args()
if args.verbosity:
        print("verbosity turned on")

测试:

$ python test.py -v
usage: test.py [-h] [-v VERBOSITY]
test.py: error: argument -v/–verbosity: expected one argument


支持无参数的写法

parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbosity", help="increase output verbosity", action="store_true")
args = parser.parse_args()
if args.verbosity:
        print("verbosity turned on")

测试:

$ python test.py -v
verbosity turned on


type 类型

parser = argparse.ArgumentParser()
parser.add_argument('x', type=int, help="the base")
args = parser.parse_args()
answer = args.x ** 2 # 此处是开方运算
print(answer)

测试:

正确示例:
$ python test.py 3
9
$ python test.py ‘31’
961

错误示例:
$ python test.py ‘31a’
usage: test.py [-h] x
test.py: error: argument x: invalid int value: ‘31a’


支持参数限定范围

parser = argparse.ArgumentParser()
parser.add_argument("square", type=int,
                    help="display a square of a given number")
parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2],
                    help="increase output verbosity")
args = parser.parse_args()
answer = args.square ** 2
if args.verbosity == 2:
    print("the square of {} equals {}".format(args.square, answer))
elif args.verbosity == 1:
    print("{}^2 == {}".format(args.square, answer))
else:
    print(answer)

测试:

$ python test.py 1 -v 2
the square of 1 equals 1

$ python test.py 1 -v 1
1^2 == 1

$ python test.py 1 -v 0
1

$ python test.py 1 -v 3
usage: test.py [-h] [-v {0,1,2}] square
test.py: error: argument -v/–verbosity: invalid choice: 3 (choose from 0, 1, 2)

$ python test.py 1
1


全局注释和互斥参数

parser = argparse.ArgumentParser(description="calculate X to the power of Y")
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbose", action="store_true")
group.add_argument("-q", "--quiet", action="store_true")
parser.add_argument("x", type=int, help="the base")
parser.add_argument("y", type=int, help="the exponent")
args = parser.parse_args()
answer = args.x ** args.y

if args.quiet:
    print(answer)
elif args.verbose:
    print("{} to the power {} equals {}".format(args.x, args.y, answer))
else:
    print("{}^{} == {}".format(args.x, args.y, answer))

测试:

$ python test.py -h
usage: test.py [-h] [-v | -q] x y

calculate X to the power of Y

positional arguments:
x the base
y the exponent

optional arguments:
-h, --help show this help message and exit
-v, --verbose
-q, --quiet

$ python test.py -v 2 3
2 to the power 3 equals 8

$ python test.py -q 2 3
8

$ python test.py 2 3
2^3 == 8

说明:-q 和 -v 是互斥的参数, 可以看出,-q和-v不出现,或仅出现一个都可以,同时出现就会报错。


给参数设定默认值

parser = argparse.ArgumentParser(description="calculate X to the power of Y")
parser.add_argument("square", type=int,
                    help="display a square of a given number")
parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2], default=1,
                    help="increase output verbosity")
args = parser.parse_args()
answer = args.square**2
if args.verbosity == 2:
    print("the square of {} equals {}".format(args.square, answer))
elif args.verbosity == 1:
    print("{}^2 == {}".format(args.square, answer))
else:
    print(answer)

测试:

$ python test.py 2
2^2 == 4

$ python test.py 2 -v 2
the square of 2 equals 4

$ python test.py 2 -v 0
4


学习链接

Python笔记之使用argparse模块命令行传参 argparse是 Python 标准库中一个用于解析命令行参数的模块。通过使用argparse,你可以轻松地为脚本添加位置参数(positional arguments)、可选参数(optional arguments)、默认值等,并自动生成帮助和使用手册。位置参数(Positional Arguments):这些参数是必须提供的,调用命令时的位置固定。选项(Optional Arguments):通常以或--开头,不是必须的,有默认值或可省略。长选项(Long Options):以-- 阅读详情

相关推荐

为Codex添加任务完成提示音:提升开发效率的实用技巧

在自动化脚本开发和模型训练过程中,实时获取任务状态反馈是提升工作效率的关键。通过Hook机制,开发者可以在代码执行的关键节点注入自定义逻辑,实现各种自动化操作。Codex的Hook系统特别适合用于任务完成提醒,其post_execution节点能准确捕获执行结束事件。技术实现上,只需简单配置TOML文件并编写音频播放脚本,就能让系统在任务完成时自动播放提示音。这种声音反馈机制尤其适用于长时间运行的批量任务和模型训练场景,实测可提升30%以上的工作效率。结合动态音效选择和跨平台兼容方案,该技巧还能扩展为桌面通

weixin_26767391的博客 546

python argparse (2)

python中的命令行解析最简单最原始的方法是使用sys.argv来实现,更高级的可以使用argparse这个模块。argparse从python 2.7开始被加入到标准库中,所以如果你的python版本还在2.7以下,那么需要先手动安装。 基本使用 import argparse parser=argparse.ArgumentParser() parser.add_argument("e...

wuguangbin1230的博客 4138

10.2 在新能源、储能及电网节点的应用实践

构网型变流器技术在电力系统中的应用进展 构网型变流器技术正从理论研究走向规模化工程应用,为新能源并网提供主动支撑能力。该技术在光伏电站采用"部分构网"混合架构,由构网单元实现黑启动和弱网稳定;在风电场利用叶轮动能提供惯量响应。储能系统是理想的构网载体,可提供快速调频和动态电压支撑。在电网节点,构网型STATCOM可增强弱电网电压稳定性,大容量变流器可替代传统调相机。当前面临标准滞后、宽频振荡风险等共性挑战,需在可靠性、经济性间取得平衡。系统级协调控制和精确阻抗建模是应用成功的关键。

技术工作者 1112

python命令行标准解析库:argparse

官方Tutorial:https://docs.python.org/3/howto/argparse.html#id1 中文参考:https://www.cnblogs.com/dengtou/p/8413609.html argparse:the recommended command-line parsing module in the Python standard library...

baiyuwujia的博客 527

Tube-based MPC完全指南:RCI集合构造与Matlab实现

模型预测控制(MPC)在实际工程中常因模型失配和外部扰动导致硬约束被突破,而鲁棒控制中的Tube-based MPC通过将单条预测轨迹扩展为“管道”集合,为不确定性提供了严格的安全边界。其核心在于利用鲁棒控制不变集(RCI)离线构造安全域,再结合在线标称MPC与反馈校正实现约束的硬保证。针对非线性系统,利普希茨条件为等效扰动的放大和RCI的构造提供了理论基础,使得算法既能保留非线性描述,又不牺牲在线计算效率。该方法适用于带扰动和参数漂移的机械系统、过程控制及嵌入式控制场景。本文以摩擦力非线性系统为例,从RC

weixin_32642109的博客 216

WiFi信道状态信息 基于Intel 5300的CSI Tool 安装及使用(一)

经过半个月的坎坷安装过程,连Windows系统都没装过的本人终于颤颤巍巍把CSI TOOL装好了,下面记录一下适于我所使用设备的安装过程。设备:一台THINKPAD X201,一台师兄借的华硕主板的台式机首先,如果你和我一样对linux其实一窍不通的话,建议先反复看教程里的安装代码,照猫画虎很难一步实现的,中途一定会有这或那的问题需要解决,所以该了解的基础linux指令还是要了解,起码安装过程中的那些指令可以去查一查。.........

Silver_777的博客 2万+

报错:run.py: error: the following arguments are required: --model

在运行代码时报错了,这个错误原因主要是需要缺乏配置参数,需要进行相关配置,最开始错误为 按照网上教程,在pycharm里找到了编辑设置,加上了--model,按照自己实际报错进行添加,以为可以大功告成,but新的报错出现了。。。run.py: error: argument --model: expected one argument 经过反思,我并没有给定义的model指定文件,所以正确操作为 1.找到编辑设置: 2.找到对应文件的参数,在后面添加上你所需要的文件就可以啦 ..

weixin_47907823的博客 9338

PointNet++改进策略 :模块改进 | x-Conv | PointCNN, 结合局部结构与全局排列提升模型性能

这篇论文介绍了一种名为PointCNN的方法,旨在从点云(point cloud)数据中学习特征。传统卷积神经网络(CNN)在处理规则网格数据(如图像)时非常有效,但由于点云是无序且不规则的,直接在其上应用卷积操作会导致形状信息丢失,并对点的排列顺序敏感。为了解决这一问题,论文提出了一种X-Conv操作。该方法通过学习一种来重新排列点云中的点并加权输入特征。然后,将典型的卷积操作应用于转换后的特征。这种方法将传统的 CNN 扩展到点云特征学习,并命名为PointCNN。

u012901740的博客 2300

jupyter contrib nbextensions插件安装失败的解决方法

前情 在安装完jupyter后,想着给我的notebook添点好用的插件,在网上找到了nbextensions这玩意,之前在电脑的ubuntu上装过,当时总体还算顺利。 情况 这次在Termux上的Kali中却在: jupyter contrib nbextension install --user 这一步出了问题,先是提示: jupyter-contrib: error: argument --user: expected one argument ,于是我重新用: jupyter contrib nbe

ZealouStill's Blog 1万+

当C#遇见声音魔法:从麦克风到文字的0.1秒奇幻漂流

为什么选300Hz?因为人声基频通常在85-255Hz,但清脆的“啊”可能到2kHz,所以300Hz是安全区!(参考知识库[1])

墨夶的博客 366

13、Java 中 MQTT 异步通知与回调的使用及传感器命令处理

本文详细介绍了在 Java 中使用 MQTT 的异步通知与回调机制,并展示了如何通过 Paho Java 客户端处理与传感器交互的命令。文章包含代码示例,讲解了 MQTT 客户端的连接、订阅、消息处理以及模拟传感器数据发布的过程,适用于希望在 Java 应用中实现 MQTT 通信与设备控制的开发者。

eee77的博客 160

Python的argparse库用法

一、argparse介绍argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。当然,Python 也有第三方的库可用于命令行解析,而且功能也更加强大,比如 docopt,Click。二、argparse的使用 创建 ArgumentParser() 对象

u010814042的博客 2190

基于Python的电商平台商品信息爬取与价格监控系统设计与实现

本文详细介绍了一个基于Python的电商平台商品信息爬取与价格监控系统的设计与实现。系统采用最新的Python爬虫技术栈,包括Scrapy框架、Selenium自动化测试工具、BeautifulSoup解析库等,实现了对主流电商平台商品信息的自动化采集、存储、分析和可视化展示。文章从系统架构设计、关键技术实现、核心代码解析等方面进行了全面阐述,并提供了完整的代码实现。该系统不仅适用于毕业设计,也可作为商业价格监控系统的原型。关键词:Python爬虫;电商数据采集;价格监控;Scrapy;Selenium;

2201_76125261的博客 964

【转载】Python命令行工具argparse模块学习笔记

Python命令行工具argparse模块学习笔记 本文完全转载自Python命令行工具argparse模块学习笔记,仅用于学习备忘。 argparse模块是在命令行(windows的cmd窗口,Linux的shell)执行程序时,直接在命令行添加程序执行所需参数的便捷工具。 使用步骤: import argparse # 导入模块 parser = argparse.ArgumentParser() # 创建一个解析对象 parser.add_argument() # 向该对象中添加命令行参数和选项

youzhizhe2014的博客 533

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python学习笔记_使用argparse模块从命令行读取参数

#使用流程: import sys import argparse def cmd():     args = argparse.ArgumentParser(description = 'Personal Information ',epilog = 'Information end ')     #必写属性,第一位     args.add_argument("name", ...

Torero_lch的博客 1465

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[Python学习笔记] argparse 模块 - 解析用户通过命令行输入的参数

1. 我们能用 argparse 干什么? argparse模块可以通过命令行的方式获取用户输入的信息,还可以向用户提供帮助信息,当用户输入无效参数时报错。 argparse是通过sys.argv来解析出参数的,两者也可以联合使用。 2. argparse 最最基本的使用模板 import argparse # 第一步,创建ArgumentParse对象 parse = ar...

GYK0812的博客 810

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

YAML格式配置文件和agrparse模块的学习

yaml配置文件和agrparse函数学习

2301_77750456的博客 576

python argparse模块学习笔记

看了几个python程序,但凡涉及到从命令行直接读取参数的时候,都有相似的如下代码,例如从命令行读取变量x,y的值 import argparseparser = argparse.ArgumentParser()parser.add_argument("x", help="横坐标",type=int)parser.add_argument('y', help="...

dev_zyx的博客 467

【python 学习杂记】argparse模块使用教程

argparse模块使用教程1、argparse介绍1 未使用argparse2 使用argparse2.1 argparse简单示例2.2 argparse进阶示例2.2.1 可选参数设置2.2.2 可选参数引用名2.2.3 清除帮助中的参数名信息2.2.4 必选参数设置列表参数(多参数)传入设置2.2.6 互斥参数使用 1、argparse介绍 argparse 是一个用来解析命令行参数的 Python 库,它是 Python 标准库的一部分。基于 python 2.7 的 stdlib 代码。

edc3001的博客 2万+

Python模块 —— argparse构建命令行

在写命令行之前我们先介绍一下什么是命令行,命令行的结构是怎么样的。我们以在Linux系统上的git命令为例作为介绍。基本命令行形式命令 [-option {必选参数1|必选参数2|必选参数3}] [可选参数...]命令示例如下:下图中git命令行帮助。

julong187的博客 1668

Python argparse 模块:命令行参数解析全攻略

argparse是 Python 标准库中的一个模块,用于编写用户友好的命令行接口。它可以自动生成帮助和使用信息,并且能够处理命令行参数的解析和错误检查。可以通过继承类来创建自定义的参数动作。例如,下面的代码实现了一个自定义动作,用于将输入的字符串转换为大写。parser.add_argument('--name', action=UpperAction, help='输入姓名并转换为大写')print(f'转换后的姓名为: {args.name}')在命令行中运行会输出转换后的姓名为: JOHN。

Tekin 是深耕技术 20 年的全栈实战派专家,精通 Go/Python/Java 等多语言开发。博客专注技术原理与实战结合,深度解析 Python 高阶编程、Go 语言架构、数据库优化等硬核内容。涵盖并发编程、机器学习、云原生等前沿领域,通过真实案例拆 2080

Python标准库【argparse】命令行解析

argparse模块的关键方法。 使用argparse模块实现基本的命令行解析操作。

qq_42783188的博客 2002

python — argparse模块,及Pycharm传递参数给argparse

python之argparse模块 argparse 模块可以编写用户友好的命令行接口。 程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。 一、argparse用法 主要有三个步骤: 创建 ArgumentParser() 对象 调用 add_argumen...

pentiumCM的博客 6335

python中argparse模块实践

python的标准库模块argparse实践

lixiao2112924629的博客 1493

python Argparse模块的使用

参考: Argparse Tutorial:https://docs.python.org/2.7/howto/argparse.html#id1 argparse - Parser for command-line options, arguments and sub-commands:https://docs.python.org/2.7/library/argparse.html?hig

u012005313的专栏 2万+

Python中argparse模块命令行参数解析介绍

本文介绍了python使用argparse解析命令行参数,包括自动生成帮助和使用信息、位置参数和可选参数介绍、参数类型和验证、子命令系统、自动错误处理等部分,包含功能解释及示例代码。

记录应用与学习笔记,Python、算法、工具、踩坑... 1214
上一篇: vue 指令的使用
下一篇: React 实现 iphone 上的小圆点的拖拽功能
Wang's Blog
博客等级 码龄12年 7434粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值