Python 内置的一个用于命令项选项与参数解析的模块argparse

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 1、argparse介绍:> argparse 是 Python 内置的一个用于命令项选项与参数解析的模块;> argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息

1、argparse介绍:

argparse 是 Python 内置的一个用于命令项选项与参数解析的模块;
argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息

2、argparse使用:

示例代码:

#导入argparse模块
import argparse  
# 创建解析器
parser = argparse.ArgumentParser(description='desc')  
# 添加整型参数
parser.add_argument('--integers', type=int, default=0, help='input an integer')  
# 解析参数parse_args()通常不带参数调用,ArgumentParser将自动从sys.argv确定命令行参数。
args = parser.parse_args()  
print(args)
#返回一个具有integers属性的对象 Namespace(integers=0).

源码中的add_argumrnt()方法解析:

ArgumentParser.add_argument(name or flags...,
                            action='',
                            nargs='',
                            const,
                            default,
                            type,
                            choices,
                            required,
                            help,
                            metavar,
                            dest)
add_argument('-f', '--foo') # 可选参数
add_argument('foo') # 位置参数
action #该action关键字参数指定的命令行参数应该如何处理
action = 'store' # 默认操作仅存储参数的值,可以不写
action = 'store_const' # 将存储由const关键字参数指定的值
action = 'store_true' # 这些是'store_const'分别存储值True和False的情况下使用
action = 'store_false'
action = 'append' # 存储一个列表,并将命令行的每个参数值附加到列表中
action = 'append_const' # 存储一个列表,并将const关键字参数指定的值附加到列表中,可用于多个参数需要将常量存储到同一列表,const默认参数为None
action = 'count' # 计算关键字参数出现的次数
action = 'extend' # 存储一个列表,并将每个参数值添加到列表中
nargs : 将单个命令行参数与要执行的单个操作相关联,并收集到一个列表中
nargs = N(一个整数) # nargs=2,命令行python test.py --foo a b 将a,b收集到一个列表中
nargs = ? # 表示从命令行使用一个参数,作为选项参数的值,如果命令行指定了参数的值则使用(python test.py --foo xx),如果不存在命令行参数(python test.py),使用default默认值,如果存在可选项参数(python test.py --foo),但是没有指定参数值,会使用const的值。
nargs = * # 存在的所有命令行参数都收集到一个列表中
nargs = + # 跟*用法一样,都会收集到一个列表中,但是如果没有命令行参数则会报错
default # 指定默认值
type # 指定类型 int float等
choices # 指定某些命令行参数应从一组受限制的值中选择,如果参数不是可接受的值一直,则报错
required=True # 指定参数值为必填
help #帮助信息说明

代码示例,

实现输入数字,返回指定值
import argparse

# 创建解析对象,并添加描述信息
parser = argparse.ArgumentParser(description = "输出数字2倍数") 
# 添加命令行参数“num",还有该参数的帮助信息,参数类型
parser.add_argument("num", help="2*num a given number", type = int)
# 进行解析
args = parser.parse_args()
# 实现功能
print(args.square*2)
相关文章
|
7天前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
19 5
|
11天前
|
算法 Python
Python 大神修炼手册:图的深度优先&广度优先遍历,深入骨髓的解析
在 Python 编程中,掌握图的深度优先遍历(DFS)和广度优先遍历(BFS)是进阶的关键。这两种算法不仅理论重要,还能解决实际问题。本文介绍了图的基本概念、邻接表表示方法,并给出了 DFS 和 BFS 的 Python 实现代码示例,帮助读者深入理解并应用这些算法。
25 2
|
17天前
|
Java 程序员 开发者
Python的gc模块
Python的gc模块
|
19天前
|
Python
SciPy 教程 之 SciPy 模块列表 16
SciPy教程之SciPy模块列表16 - 单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了力学单位的使用,如牛顿、磅力和千克力等。
15 0
|
20天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
15 0
|
20天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
16 0
|
5天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
16 2
|
1月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
67 0
|
1月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
52 0
|
1月前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
60 0

推荐镜像

更多