Python命令行参数处理推荐用argparse,sys.argv仅适用于简单场景;前者支持自动帮助、类型校验、子命令等,后者仅提供原始字符串列表且需手动处理。
Python中处理命令行参数主要有两种方式:简单场景用
,规范项目推荐用
。前者轻量直接,后者支持自动帮助生成、类型校验、子命令等,更适合可维护的脚本。
sys.argv:最基础的参数获取方式
是一个列表,包含运行 Python 脚本时输入的所有命令行字符串,
是脚本文件名,后续元素是传入的参数。
适合快速测试或极简工具(比如
)
所有参数都是字符串,需手动转换类型(如
)
无内置错误提示,参数缺失或格式错需自己检查并
提示
不支持短选项合并(如
)、长选项(
)、默认值等特性
argparse.ArgumentParser:推荐的标准做法
是 Python 标准库中专为命令行解析设计的模块,能自动生成帮助信息、校验参数合法性,并支持复杂结构(如子命令、互斥组)。
先创建解析器:
添加参数:
解析调用:
,返回命名空间对象,如
运行
自动输出格式化帮助,无需额外编码
常见实用技巧
实际使用中常遇到这些需求:
Python 3.14.3
微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。
下载
立即学习
“
Python免费学习笔记(深入)
”;
可选参数带默认值
:用
,避免
和手动判断
布尔开关参数
:用
,如
触发
多个位置参数
:用
接收至少一个,
接收零个或多个
限制取值范围
:用
或自定义
函数做校验
什么时候选哪个?
单行调试或临时脚本,
足够快;只要脚本可能被他人使用、需要文档、或未来会扩展功能,就该用
。它写的多几行,但省下的维护成本和用户困惑远超这点开销。
sys.argvargparsesys.argvargv[0]python script.py input.txt -vint(sys.argv[1])print-abc--helpargparseparser = argparse.ArgumentParser(description="描述用途")parser.add_argument("-f", "--file", type=str, required=True, help="输入文件路径")args = parser.parse_args()args.filepython script.py -hdefault="value"required=Falseaction="store_true"--verboseargs.verbose == Truenargs="+"nargs="*"choices=["a", "b"]type=sys.argvargparse