一、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
我们可以看到输出结果是将 脚本文件名和我们输入的参数依次输出。