

新闻资讯
技术教程sys.argv适合简单场景,argparse更适合正式项目;前者仅提供原始参数列表,需手动解析和校验,后者支持自动帮助、类型检查、默认值及子命令等高级功能。
Python脚本接收命令行参数,sys.argv适合简单场景,argparse更适合正式项目——它自动处理帮助信息、类型校验、参数组合和错误提示。
sys.argv 快速获取原始参数sys.argv 是一个列表,argv[0] 是脚本名,后续元素是传入的字符串参数。它不解析结构,也不做类型转换,适合写一次性小工具或调试时快速取值。
python script.py input.txt -v 中,sys.argv[1] 是 "input.txt",sys.argv[2] 是 "-v"
IndexError 或类型错误--
help、默认值、选项分组等特性,也不校验参数合法性argparse 规范化定义和解析参数argparse 是 Python 标准库中推荐的参数解析模块,适用于需要可维护性、可读性和用户友好性的脚本。
add_argument() 明确指定名称、类型(type=int)、是否必需(required=True)、默认值(default="log.txt")等-f)、长选项(--file)、位置参数、可选参数、互斥组(add_mutually_exclusive_group())parser.parse_args() 后返回命名空间对象,属性名即参数名(如 args.input),无需索引操作--help 或参数错误时,自动输出清晰的帮助文本,无需额外编码
实际使用中,常结合两者优势或补充功能:
python convert.py source.json --output target.yaml --format yaml
add_subparsers() 实现类似 git commit、git push 的多模式脚本argparse 解析后,可用 os.getenv() 或 configparser 做兜底type=valid_date,在解析阶段就校验日期格式并抛出易懂错误判断依据主要是脚本用途和协作需求:
sys.argv 足够轻量argparse
sys.argv,但开始出现 if len(sys.argv) 这类硬编码判断 → 是重构为 argparse 的明确信号