sys.argv是命令行参数,既然提到命令行,那么使用它时需要在命令行下,如Windows下的cmd(命令提示符)窗口下或Linux下的终端(Terminal)。
不能再IDE环境(Pycharm等编译器)下使用,即使使用也只能用sys.argv[0],表示该脚本所在路径如:C:/Users/Administrator/Desktop/Python_Opencv/Test1/TT/1.py,除此之外,使用其他sys.argv[1]、sys.argv[2]。。。都会报错:IndexError: list index out of range。
sys.argv[]说白了就是一个从程序外部获取参数的桥梁,从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。
在Windows cmd下测试sys.argv(默认是已装python)
脚本内容:
import sys
print(sys.argv[0])
cd命令找到所写脚本目录,输入文件名文件名1.py:输出是脚本路径。
import sys
print (sys.argv[1]+sys.argv[2])
上面输出的是参数1+参数2
命令输入:1.py a b
则输出的是:ab 即argv[1]=a,argv[2]=b
import sys
print (sys.argv[1:])
输入命令:1.py a b c d e
输出的是:[a,b,c,d,e] 列表形式
argv参数的应用:计算argv[1]至最后的数字之和,由于命令行输入的是字符,所以先转换成数字
import sys
sum=0
#不能包含argv[0]
for ch in sys.argv[1:]:
sum+=int(ch)
print (sum)
总结:若想要运行脚本的同时,引用新的临时变量(外部输入),即可使用argv