一、Python sys 模块

“sys” 是 “system”,是一个系统模块,该模块提供了一些接口,用户访问python解释器自身使用和维护的变量,同时模块中还提供了一些函数,而我们今天要讲解的 argv 就是其中一个函数。

二、sys.argv

上一篇文章我们讲到了引用模块,这里sys 就相当于一个模块,而argv就是模块里的一个函数。
“argv” 即 “argument value” 是一个列表对象,其中存储的是在命令行调用 python 脚本是提供的 “命令行参数”。
这里重点理解这句话,我们举例来说明:
先看一个简单的例子:

import sysprint(sys.argv[0])

我们看一下输出结果:
这里我们将 文件命名为 test.py 放在我们的系统目录下,在cmd下执行:python test.py

我们看一下输出结果;

可以看到结果是:被调用的脚本文件名或全路径
这里需要强调的是:argv[0] 是 被调用的脚本文件名或全路径
那我们改一下程序,再试试:

import sysprint(sys.argv[1])

这里我们将代码改成 argv[1]
此时我们输入 python test.py hello 看一下运行结果:

看到这,是不是有的小伙伴就明白啦,sys.argv[]其实就是一个列表。
那我们再试一个,既然sys.argv是一个列表,我们就让它从第三个开始输出:

import sysprint(sys.argv[2:])

看一下运行结果:

这次我们输入的是 1 2 3 4 5 ,我们期望从列表的第三个元素开始输出,结果也很我们期望的一样,讲到这里,sys.argv就被我们彻底搞懂了。

总结:

sys.argv[]是一个列表
sys.argv[0]是被调用的脚本文件名或全路径
sys.argv[1:]之后的元素就是我们从程序外部输入的,而非代码本身的,想要看到它的效果,就要将程序保存,从外部运行程序并给参数,这也是我们在cmd里面运行的原因。

提升:

既然已经搞明白了 sys.argv[]的基本用法,那我们再测试一下:

import sysfor index,arg in enumerate(sys.argv):print("第%d个参数是: %s" % (index, arg))


这次输入: a b c d e
我们可以看到输出结果是将 脚本文件名和我们输入的参数依次输出。