2018/4/27 Python中argparse模块

本文介绍了 Python 中的 argparse 模块,它是用于解析命令行参数和选项的标准库。文章详细讲解了 argparse 的使用步骤、核心方法及各种参数配置,并通过实例展示了如何使用 argparse 处理复杂的命令行输入。

python学习之argparse模块    https://www.2cto.com/kf/201412/363654.html

Python命令行解析argparse常用语法使用简介   https://www.cnblogs.com/zknublx/p/6106343.html

Python 命令行解析工具 Argparse介绍(一)

https://www.cnblogs.com/jianboqi/archive/2013/01/10/2854726.html

一、简介:

argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。argparse模块的作用是用于解析命令行参数,例如python parseTest.py input.txt output.txt --user=name --port=8080。

二、使用步骤:

1:import argparse

2:parser = argparse.ArgumentParser()

3:parser.add_argument()

4:parser.parse_args()

解释:首先导入该模块;然后创建一个解析对象;然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项;最后调用parse_args()方法进行解析;解析成功之后即可使用

三、方法ArgumentParser(prog=None, usage=None,description=None, epilog=None, parents=[],formatter_class=argparse.HelpFormatter, prefix_chars='-',fromfile_prefix_chars=None, argument_default=None,conflict_handler='error', add_help=True)

这些参数都有默认值,当调用parser.print_help()或者运行程序时由于参数不正确(此时python解释器其实也是调用了pring_help()方法)时,会打印这些描述信息,一般只需要传递description参数,如上。

四、方法add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

其中:

name or flags:命令行参数名或者选项,如上面的address或者-p,--port.其中命令行参数如果没给定,且没有设置defualt,则出错。但是如果是选项的话,则设置为None

nargs:命令行参数的个数,一般使用通配符表示,其中,'?'表示只用一个,'*'表示0到多个,'+'表示至少一个

default:默认值

type:参数的类型,默认是字符串string类型,还有float、int等类型

help:和ArgumentParser方法中的参数作用相似,出现的场合也一致

基本使用

import argparse
parser=argparse.ArgumentParser()
parser.add_argument("echo",help="echo the string")
args=parser.parse_args()
print args.echo

参数介绍

上面这个例子是最简单的一个使用例子,功能是把你的输入参数打印到屏幕 。不过对于基本的使用需求,这几行代码应该就已经够用,更加高级的用法可以参考官方文档。

下面介绍下例子代码。

1、导入argparse模块

2、创建解析器对象ArgumentParser,可以添加参数。

description:描述程序

parser=argparse.ArgumentParser(description="This is a example program ")

add_help:默认是True,可以设置False禁用

3、add_argument()方法,用来指定程序需要接受的命令参数

定位参数:

parser.add_argument("echo",help="echo the string")

可选参数:

parser.add_argument("--verbosity", help="increase output verbosity")

在执行程序的时候,定位参数必选,可选参数可选。

add_argument()常用的参数:

dest:如果提供dest,例如dest="a",那么可以通过args.a访问该参数

default:设置参数的默认值

action:参数出发的动作

store:保存参数,默认

store_const:保存一个被定义为参数规格一部分的值(常量),而不是一个来自参数解析而来的值。

store_ture/store_false:保存相应的布尔值

append:将值保存在一个列表中。

append_const:将一个定义在参数规格中的值(常量)保存在一个列表中。

count:参数出现的次数

parser.add_argument("-v", "--verbosity", action="count", default=0, help="increase output verbosity")

version:打印程序版本信息

type:把从命令行输入的结果转成设置的类型

choice:允许的参数值

parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2], help="increase output verbosity")

help:参数命令的介绍


### 使用 Python `argparse` 模块解析命令行参数 #### 创建 ArgumentParser 对象 要使用 `argparse` 模块,首先需导入该模块并创建一个 `ArgumentParser` 类的对象。这个对象负责管理所有的命令行参数。 ```python import argparse parser = argparse.ArgumentParser(description='Process some integers.') ``` 此代码片段初始化了一个新的 `ArgumentParser` 实例,并提供了描述信息以便于生成帮助文档[^2]。 #### 添加参数 接着向 `ArgumentParser` 中添加期望接收的命令行参数: ```python 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)') ``` 上述例子展示了两种类型的参数:位置参数(如 `'integers'`)和可选参数(如 `--` 的参数;后者则相反[^1]。 #### 解析参数 完成参数定义之后,调用 `.parse_args()` 方法来解析实际传递给脚本的实际命令行参数: ```python args = parser.parse_args() print(args.accumulate(args.integers)) ``` 这段代码会处理用户输入的数据并将它们分配到相应的属性上,在这里就是 `args.integers` 和 `args.accumulate` 属性[^4]。 #### 完整示例 下面给出一个更具体的案例——计算圆柱体体积的应用场景: ```python import argparse import math def calculate_volume(radius, height): """Calculate volume of a cylinder.""" return math.pi * radius ** 2 * height if __name__ == "__main__": # 设置命令行参数解析器 parser = argparse.ArgumentParser( description="Calculate Volume of Cylinder" ) # 添加必要的命令行参数 parser.add_argument('-r', '--radius', required=True, type=float, help="Radius of the cylinder.") parser.add_argument('-H', '--height', required=True, type=float, help="Height of the cylinder.") # 执行解析过程 args = parser.parse_args() # 输出结果 print(f"The calculated volume is {calculate_volume(args.radius, args.height)}") ``` 在这个例子中,程序接受两个必需的位置参数 (`-r/--radius`, `-H/--height`) 来指定圆柱半径和高度,并打印出对应的体积值[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值