在引入 sys 这个模块函数的时候,一直不太懂它的用法,然后试图从结果发现它的用途,结果还是不太懂,在网上查了许多,大部分都是转裁和复制的。给的都是简明 python 教程上那个一长串代码的例子,写着看了就明白了,可我看了还是没真正明白,只知道 “ sys.argv [ 0 ] 表示代码本身文件路径”这点。后来终于查到了,记录一下。
sys.argv[ ] 其实就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,所以获得的其实是一个列表(list),也就是说 sys.argv 其实可以看作是一个列表,所以才能用 [ ] 提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。
下面我们通过一个极简单的 test.py 程序的运行结果来说明它的用法。
1 #test.py
2
3 import sys
4 a=sys.argv[0]
5 print(a)
得到的结果是C:\test.py,这就是0指代码(即此.py程序)本身的意思。
然后将代码中0改为1 :
a=sys.argv[1]
保存后,再从控制台窗口运行,这次我们加上一个参数,输入:test.py what
得到的结果就是我们输入的参数what,看到这里是不是有点明白了。
那再把代码修改一下:
a=sys.argv[2:]
保存后,再从控制台窗台运行程序,多加几个参数,以空格隔开:
test.py a b c d e f
得到的结果为[‘b’, ’c’, ’d’, ’e’, ’f’]
这下应该明白了吧。Sys.argv [ ] 其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这个参数其实是从程序外部输入的,而非代码本身的某个参数,要想看到效果,就应该将程序保存了,然后从外部来运行程序并给出参数。