【python】argparse库学习
·
argparse是Python标准库中一个非常强大且推荐使用的模块,专门用于解析命令行参数和选项,让您可以轻松地为您的Python脚本创建用户友好的命令行界面(CLI)。
当您的程序需要从终端运行时接收输入时,argparse能为您处理很多繁琐的工作,例如:
- 自动解析用户输入的参数。
- 根据您的定义,将参数转换为合适的Python数据类型。
- 在用户提供无效参数时,自动生成并显示错误信息。
- 当用户请求帮助时(通常使用
-h或--help),会自动生成清晰的帮助和用法信息。
argparse的基本使用四步法
使用argparse通常遵循以下四个简单的步骤:
- 导入
argparse模块 - 创建解析器(Parser)对象
- 向解析器添加参数(Argument)
- 解析参数
下面我们通过一个具体的例子来详细解释这四个步骤。
示例:一个计算数字次方的简单脚本
假设我们要创建一个名为 calculate_power.py 的脚本,它可以计算一个数字的指定次方,并且可以选择性地增加输出的详细程度。
calculate_power.py 的代码如下:
import argparse
# 1. 创建解析器
parser = argparse.ArgumentParser(description="计算一个数字的指定次方。")
# 2. 添加参数
# 添加位置参数 (Positional Arguments)
parser.add_argument("base", help="要计算的底数", type=int)
parser.add_argument("exponent", help="要计算的指数", type=int)
# 添加可选参数 (Optional Arguments)
parser.add_argument("-v", "--verbose", action="store_true", help="增加输出的详细程度")
# 3. 解析参数
args = parser.parse_args()
# 4. 使用参数
result = args.base ** args.exponent
if args.verbose:
print(f"正在计算 {args.base} 的 {args.exponent} 次方...")
print(f"计算结果是: {result}")
else:
print(result)
代码详解
1. 创建解析器
parser = argparse.ArgumentParser(description="计算一个数字的指定次方。")
argparse.ArgumentParser()创建了一个解析器对象。description参数提供了一段关于这个程序用途的简短描述。当用户请求帮助信息时,这段描述会显示在最前面。
2. 添加参数
我们使用 .add_argument() 方法来定义脚本接受哪些参数。
-
位置参数 (Positional Arguments)
parser.add_argument("base", help="要计算的底数", type=int) parser.add_argument("exponent", help="要计算的指数", type=int)- 位置参数是必需的,并且它们的顺序很重要。 用户在命令行中必须按顺序提供它们的值。
"base"和"exponent"是参数的名称。help参数提供了对该参数的说明,会显示在帮助信息中。type=int会告诉argparse将用户输入的字符串自动转换为整数。如果转换失败(例如用户输入了 “abc”),argparse会自动报错。
-
可选参数 (Optional Arguments)
parser.add_argument("-v", "--verbose", action="store_true", help="增加输出的详细程度")- 可选参数通常以
-(短格式) 或--(长格式) 开头。 action="store_true"是一个常见的用法。它的意思是,如果用户在命令行中提供了-v或--verbose这个选项,那么就将args.verbose的值设为True。如果没有提供,则默认为False。这常用于开关式的选项。
- 可选参数通常以
3. 解析参数
args = parser.parse_args()
- 这行代码会检查命令行输入,根据之前定义的规则进行解析,然后返回一个包含所有参数值的对象(通常是一个
Namespace对象)。 - 如果用户输入有误,程序会在这里终止并显示错误信息。
4. 使用参数
result = args.base ** args.exponent
if args.verbose:
# ...
- 解析完成后,您可以通过
args.参数名的方式来访问用户提供的值。例如,args.base对应 “base” 参数的值,args.verbose对应--verbose选项的值。
如何在命令行中运行
-
查看帮助信息:
argparse会自动为您生成帮助文档。python calculate_power.py -h输出将会是:
usage: calculate_power.py [-h] [-v] base exponent 计算一个数字的指定次方。 positional arguments: base 要计算的底数 exponent 要计算的指数 options: -h, --help show this help message and exit -v, --verbose 增加输出的详细程度 -
基本用法:
提供两个必要的位置参数。python calculate_power.py 5 3输出:
125 -
使用可选参数:
激活详细输出模式。python calculate_power.py 5 3 --verbose ``` 输出:正在计算 5 的 3 次方…
计算结果是: 125 -
无效输入:
如果提供非整数或者缺少参数,argparse会自动报错。python calculate_power.py 5输出:
usage: calculate_power.py [-h] [-v] base exponent calculate_power.py: error: the following arguments are required: exponent
更多推荐



所有评论(0)