Python argparse库初体验:5分钟学会命令行参数处理
·
Python argparse库初体验:5分钟学会命令行参数处理
argparse是Python标准库中强大的命令行参数解析工具,只需5分钟掌握以下核心用法:
1. 基础框架
import argparse
# 创建解析器对象
parser = argparse.ArgumentParser(description="程序描述")
# 添加参数声明
parser.add_argument("参数名", help="参数说明")
# 解析命令行参数
args = parser.parse_args()
# 使用参数
print(f"接收到的参数: {args.参数名}")
2. 参数类型详解
| 参数类型 | 示例代码 | 功能说明 |
|---|---|---|
| 位置参数 | parser.add_argument("filename") |
必须提供的参数 |
| 可选参数 | parser.add_argument("-v", "--verbose") |
-v短格式/--verbose长格式 |
| 类型转换 | parser.add_argument("--num", type=int) |
自动转换为整数 |
| 默认值 | parser.add_argument("--level", default=1) |
未提供时使用默认值 |
| 布尔标志 | parser.add_argument("--debug", action="store_true") |
存在即为True |
3. 完整示例
import argparse
# 创建解析器
parser = argparse.ArgumentParser(description="文件处理工具")
# 添加参数
parser.add_argument("input_file", help="输入文件路径")
parser.add_argument("-o", "--output", help="输出文件路径")
parser.add_argument("--size", type=int, default=1024, help="处理块大小")
parser.add_argument("--verbose", action="store_true", help="显示详细日志")
# 解析参数
args = parser.parse_args()
# 使用参数
print(f"正在处理: {args.input_file}")
if args.output:
print(f"输出到: {args.output}")
print(f"块大小: {args.size}字节")
if args.verbose:
print("详细模式已启用")
4. 使用演示
# 基础调用
$ python script.py data.txt
正在处理: data.txt
块大小: 1024字节
# 完整参数
$ python script.py data.txt -o result.txt --size 2048 --verbose
正在处理: data.txt
输出到: result.txt
块大小: 2048字节
详细模式已启用
5. 进阶技巧
- 互斥参数:使用
add_mutually_exclusive_group()
group = parser.add_mutually_exclusive_group()
group.add_argument("--fast", action="store_true")
group.add_argument("--accurate", action="store_true")
- 参数验证:自定义验证函数
def positive_int(value):
ivalue = int(value)
if ivalue <= 0:
raise argparse.ArgumentTypeError("必须是正整数")
return ivalue
parser.add_argument("--count", type=positive_int)
关键点总结:
- 位置参数必须提供,可选参数以
-或--开头action='store_true'用于创建布尔标志- 使用
help参数生成自动帮助文档(通过-h查看)- 类型转换和默认值能大幅简化参数处理逻辑
现在尝试创建自己的命令行工具吧!只需导入argparse,定义参数规则,即可轻松处理各种命令行输入。
更多推荐


所有评论(0)