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 应用。