Python脚本启动参数教程_sysargv使用详解

sys.argv 是 Python sys 模块中的列表,存储命令行参数:索引 0 为脚本名,索引 1 起为用户参数,所有元素均为字符串,需手动类型转换;轻量脚本可用,正式项目推荐 argparse。

Python脚本启动时传入的参数,通过 sys.argv 获取,它是一个列表,包含命令行输入的所有字符串(包括脚本名本身)。

sys.argv 是什么?

sys.argv 是 Python 标准库 sys 模块中的一个列表变量,记录脚本运行时的全部命令行参数:

  • 索引 0(sys.argv[0])是脚本文件的路径或名称(取决于如何调用)
  • 索引 1 开始(sys.argv[1:] )才是用户传入的自定义参数
  • 所有元素都是字符串类型,即使看起来像数字或布尔值,也需手动转换

基本用法示例

新建一个 hello.py

import sys
print("脚本名:", sys.argv[0])
print("参数个数:", len(sys.argv) - 1)
print("所有参数:", sys.argv[1:])

终端中运行:

立即学习“Python免费学习笔记(深入)”;

python hello.py name age city

输出为:

脚本名: hello.py
参数个数: 3
所有参数: ['name', 'age', 'city']

常见处理技巧

直接使用 sys.argv 简单但易出错,实际开发中建议配合以下方式增强健壮性:

  • len(sys.argv) 判断参数数量是否足够,避免 IndexError
  • 对关键参数做类型转换,比如 int(sys.argv[1])float(sys.argv[2])
  • try/except 捕获转换异常,给出友好提示
  • 简单场景可用切片快速提取,如 input_file, output_file = sys.argv[1:3]

比 sys.argv 更好的选择?

如果脚本需要支持选项(如 -v--output=xxx)、帮助信息、类型校验或子命令,sys.argv 就显得力不从心。推荐升级使用:

  • argparse:标准库,功能全面,适合大多数命令行工具
  • click:第三方库,声明式写法,自动支持帮助、类型、分组等
  • fire:Google 开发,一行代码即可将函数转为 CLI 工具

sys.argv 适合轻量、临时、内部脚本;正式项目建议优先用 argparse。