python argparse

Python argparse 模块使用指南

argparse 是 Python 标准库中用于构建命令行工具的核心模块,支持参数解析、自动生成帮助信息及错误处理‌。以下是其核心功能和使用方法:

1.基础用法‌

步骤‌:

创建解析器‌:通过 ArgumentParser 初始化解析器对象,定义程序描述信息‌。

import argparse

parser = argparse.ArgumentParser(description="程序描述")

添加参数‌:

位置参数‌:必须按顺序传递的参数。

parser.add_argument("input_file", help="输入文件路径")

可选参数‌:以 - 或 -- 开头的参数,支持短/长格式‌。

parser.add_argument("-v", "--verbose", action="store_true", help="启用详细模式")

解析参数‌:调用 parse_args() 获取解析结果‌。

args = parser.parse_args()

print(args.input_file)

2.参数类型与配置‌

类型约束‌:通过 type 指定参数类型(如 int、float)‌。

parser.add_argument("--size", type=int, default=10, help="数值大小")

必需参数‌:设置 required=True 强制用户输入‌。

parser.add_argument("-o", "--output", required=True)

互斥参数‌:通过 add_mutually_exclusive_group() 创建互斥参数组‌。

group = parser.add_mutually_exclusive_group()

group.add_argument("--enable", action="store_true")

group.add_argument("--disable", action="store_true")

3.高级功能‌

子命令‌:利用子解析器实现多级命令(类似 git commit 结构)‌。

subparsers = parser.add_subparsers()

parser_a = subparsers.add_parser("cmd1", help="子命令1")

parser_a.add_argument("--option")

参数动作‌:通过 action 定义参数行为(如 store_true 存储布尔值)‌。

parser.add_argument("--debug", action="store_true")

4.最佳实践‌

清晰的帮助信息‌:为每个参数添加 help 描述,提升工具易用性‌。

默认值设置‌:通过 default 提供合理的默认值,减少用户输入负担‌。

错误处理‌:依赖 argparse 自动验证参数合法性,避免手动校验‌。

完整示例‌

python 复制代码
import argparse

def main():
    parser = argparse.ArgumentParser(description="文件处理工具")
    parser.add_argument("input", help="输入文件路径")
    parser.add_argument("-o", "--output", help="输出文件路径", default="output.txt")
    parser.add_argument("--size", type=int, default=100, help="处理尺寸")
    parser.add_argument("-v", "--verbose", action="store_true", help="详细模式")
    args = parser.parse_args()

    if args.verbose:
        print(f"正在处理 {args.input},输出到 {args.output}")

if __name__ == "__main__":
    main()

运行示例‌:

python script.py input.txt -o result.txt --size 200 -v

总结‌

argparse 提供了灵活的命令行参数解析能力,适用于从简单脚本到复杂工具的开发。通过合理使用参数类型、子命令和互斥逻辑,可以构建用户友好的 CLI 应用‌。