跳转到主内容
极星编程网:以代码为星,赴技术山海!

Python命令行参数解析_sys与argparse用法

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

相关文章