argv:网路解=释义( 参数,命令行,参数排列命令行,参数命令行变元数组)
sys.argv[0]表示代码本身文件名称”仅仅是一种结果的表现,其sys.argv的真正用法是什么,接下来用个小的demo来解释下:
在linux环境下,打开终端,touch一个aaa.py执行脚本。
用vim编辑器进入到执行脚本中,接下来咱们写几行代码,如下:
1 import sys
2
3 a = sys.argv
4 print a
保存退出,执行python aaa,py。结果如下:
可以看出,打印出来的结果是在列表中以字符串形式存在的文件名,那么改改代码,我们再看看:
1 import sys
2
3 a = sys.argv[0]
4 print a
执行结果:
此时取出的就是单独的执行文件名。那么我们再执行一下python aaa.py hello,看看结果怎么样:
跟刚刚执行结果没什么关系。如果我们把 argv[0] 改成argv[1]会怎么样:
1 import sys
2
3 a = sys.argv[1]
4 print a
执行结果:
此时看到,这次打印的不再是我们的文件名称了,而是我们文件名后面跟的一些参数。再换个方式,将代码再改改:
1 import sys
2
3 a = sys.argv[3: ]
4 print a
执行:python aaa.py 1 2 3 4 5 6 7 8 9 0
结果:
import sys
def test(argv):
print argv[1]
print argv[2]
if __name__ == '__main__':
test(sys.argv)
启动方式: python abc.py 1 2 这样1,2 两个参数就会传递到argv[1], argv[2].因为 argv[0],是获取的脚本名称。
怎么样,这下明白了把。Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。我们用此方法获取文件名称或者外部传入参数通过列表操作进行筛选后使用。