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免费学习笔记(深入)”;
本书图文并茂,详细讲解了使用LAMP(PHP)脚本语言开发动态Web程序的方法,如架设WAMP平台,安装与配置开源Moodle平台,PHP程序设计技术,开发用户注册与验证模块,架设LAMP平台。 本书适合计算机及其相关专业本、专科学生作为学习LAMP(PHP)程序设计或动态Web编程的教材使用,也适合对动态Web编程感兴趣的读者自觉使用,对LAMP(PHP)程序设计人员也具有一定的参考价值。
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。









