Python中解析命令行参数最推荐使用argparse标准库,它比手动处理sys.argv更健壮、易读、可维护,并能自动生成帮助文档和错误提示;支持位置参数、可选参数、短选项、类型检查、取值范围限制、互斥组等特性,且可通过封装函数、nargs、SUPPRESS等方式提升实战灵活性。

Python中解析命令行参数最推荐的方式是使用标准库 argparse,它比手动处理 sys.argv 更健壮、易读、可维护,还能自动生成帮助文档和错误提示。
基础用法:定义一个简单参数
比如写一个脚本 hello.py,支持传入姓名和问候次数:
import argparse
parser = argparse.ArgumentParser(description='一个打招呼的小工具')
parser.add_argument('--name', type=str, default='World', help='要问候的人名')
parser.add_argument('--count', type=int, default=1, help='问候次数')
args = parser.parse_args()
for _ in range(args.count):
print(f'Hello, {args.name}!')
运行示例:
-
python hello.py --name Alice --count 3→ 输出三遍 "Hello, Alice!" -
python hello.py -h→ 自动显示帮助信息(含参数说明)
位置参数 vs 可选参数
位置参数没有前缀(如 -- 或 -),必须按顺序提供;可选参数带前缀,可省略或调整顺序。
本书是全面讲述PHP与MySQL的经典之作,书中不但全面介绍了两种技术的核心特性,还讲解了如何高效地结合这两种技术构建健壮的数据驱动的应用程序。本书涵盖了两种技术新版本中出现的最新特性,书中大量实际的示例和深入的分析均来自于作者在这方面多年的专业经验,可用于解决开发者在实际中所面临的各种挑战。 本书内容全面深入,适合各层次PHP和MySQL开发人员阅读,既是优秀的学习教程,也可用作参考手册。
立即学习“Python免费学习笔记(深入)”;
- 添加位置参数:
parser.add_argument('filename', help='输入文件路径'),调用时直接写python script.py data.txt - 短选项支持:
parser.add_argument('-v', '--verbose', action='store_true', help='启用详细输出'),可用-v或--verbose
常用参数类型与约束
argparse 支持类型检查、取值范围限制、互斥组等实用功能:
-
type=float或type=pathlib.Path自动转换类型 -
choices=['A', 'B', 'C']限定合法值 -
required=True标记必填(位置参数默认必填) - 用
add_mutually_exclusive_group()实现“二选一”,比如--debug和--quiet不能同时出现
实战小技巧
真实项目中建议这样组织:
- 把参数定义封装成函数,如
def setup_parser():,便于复用和测试 - 对复杂参数(如多个文件、JSON 配置路径),用
nargs='*'或nargs='+'接收多个值 - 通过
default=argparse.SUPPRESS让未传参的选项不进入args命名空间,避免干扰逻辑判断 - 调试时可临时传入字符串列表测试:
parser.parse_args(['--name', 'Bob'])









