由于是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果,也在网上查了许多,但发现这个问题的比较详细的解释只有一个版本,大部分都是转裁和复制的。给的都是简明python教程上那个一长串代码的例子,说看了就明白了,可我看得晕头转向的仍是没真正明白,只知道“sys.argv[0]表示代码自己文件路径”这点,其实仍是不明其意。后来通过大量努力,多方求教才真正明悟了,谨以记录和分享,但愿能从另外一个角度给同在求索过程当中的同窗一点启发。python
sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,因此那些试图从代码来讲明它做用的解释一直没看明白。由于咱们从外部取得的参数能够是多个,因此得到的是一个列表(list),也就是说sys.argv其实能够看做是一个列表,因此才能用[]提取其中的元素。其第一个元素是程序自己,随后才依次是外部给予的参数。函数
下面咱们经过一个极简单的test.py程序的运行结果来讲明它的用法。spa
`1 #test.py 2 3 import sys 4 a=sys.argv[0] 5 print(a)` * 1 * 2 * 3 * 4 * 5
将test.py保存在c盘的根目录下。code
在程序中找到 ‘运行’->点击->输入"cmd"->回车键 进入控制台命令窗口(以下图),先输入cd c: (做用是将命令路径改到c盘根目录),而后输入test.py运行咱们刚刚写的程序:blog
获得的结果是C:test.py,这就是0指代码(即此.py程序)自己的意思。教程
而后咱们将代码中0改成1 :图片
a=sys.argv[1]rem
保存后,再从控制台窗口运行,此次咱们加上一个参数,输入:test.py whatcmd
获得的结果就是咱们输入的参数what,看到这里你是否是开始明白了呢。it
那咱们再把代码修改一下:
a=sys.argv[2:]
保存后,再从控制台窗台运行程序,此次多加几个参数,以空格隔开:
test.py a b c d e f
获得的结果为[‘b’, ’c’, ’d’, ’e’, ’f’]
应该大彻大悟了吧。Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码自己的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。