Python中 sys.argv[]的用法超详细讲解

刚学习Python的同学,对sys.argv[]的用法不是太理解。学习过c语言或java语言的同学就比较容易理解。

好了Let's go,大家就跟上的我的思路,就能轻松理解sys.argv[]的用法。

argv 的英文是 参数向量; 命令行参数; 参数数组;

我们在思考一个问题,我们在执行python程序的时候能否从外部给python传递一些相关的参数呢?它的英文也是命令行参数的意思。

那我们做一下实验来验证这个结果:

首先我们创建非常简单的python文件 c:\py\test.py

import sys
a = sys.argv[0]
print(a)

在程序中找到 ‘运行’->点击->输入"cmd"->回车键   进入控制台命令窗口(如下图),先输入 cd c:\py  (作用是将命令路径改到c盘的py目录),然后输入以下命令:

C:\Users\Administrator>cd c:\py

c:\py>python test.py
test.py

我们发现打印出来的是test.py,这个不就是接在python命名行后面的参数吗?我们再做一下实验,把参数修改一下,命令如下:

C:\Users\Administrator>python c:\py\test.py
c:\py\test.py

我们发现跟在python后面的参数是 c:\py\test.py sys.argv[0]打印出来的就是 c:\py\test.py,这个就证明sys.argv[]列表里面存放的就是从外部命令传递的参数。

再次修改我们的代码,证明我们这种猜想:

import sys
a = sys.argv[0]
l = len(sys.argv)  # 查看列表的存储的个数
print(l) # 打印列表的存储的个数

再次命令如下:

C:\Users\Administrator>python c:\py\test.py
1
C:\Users\Administrator>python c:\py\test.py xinbiancheng.cn
2

我们发现第一Python命令后面跟一个参数打印出来的是1,第二个python命名行后面跟的是2个参数,我们发现打印的是2,这就说明python命令行后面跟多少参数,sys.argv[]列表就存储多少个参数。

再次修改python源代码,把参数的明细打印出来,代码如下:

import sys
a = sys.argv[0]
l = len(sys.argv)  # 查看列表的存储的个数
print(l)  # 打印列表的存储的个数
print(sys.argv)  #  打印列表数据

再次命令如下:

C:\Users\Administrator>python c:\py\test.py xinbiancheng.cn baidu.com google.cn
4
['c:\\py\\test.py', 'xinbiancheng.cn', 'baidu.com', 'google.cn']

我们现在很轻松的看到python命令行后面跟4个参数,明细打印出来的就是我们输入的参数

Python 中 sys.argv[]的用法总结如下:

Sys.argv[]其实就是一个列表,里边的项为Python命令行后面用户输入的参数,中间用空格分开,关键就是要明白这参数是从程序外部输入的,这样增加了程序,调试,测试,及运行的灵活性