问题
最近在看代码的时候,遇到了一个语句,如下所示
sys.argv[1]
查找了一些资料,用此文记录一下
参考文章
测试
首先
import sys
b = sys.argv[0]
print(type(b), b) //测试代码
D:\competition\img\test.py //代码的绝对路径
其次,打开终端,输入执行语句
python test.py
由此可见,可以将sys.argv[0]认为是py本身文件的名称或路径。
然后我们继续测试
import sys
b = sys.argv[1]
print(type(b), b) //测试代码
输入
python test.py 1
sys.argv[1]可以理解为py文件后面的第一个参数,以此类推sys.argv[2]为py文件后面的第二个参数
继续
import sys
if len(sys.argv) == 1:
print(type(sys.argv))
print(sys.argv)
print('yes') //测试代码
从图中可以看出sys.argv是一个列表,且长度等于1。从前面可以知道,当终端上只有可执行文件路径的时候,也就是列表里只有sys.argv[0],刚好长度等于1。
继续测试
import sys
if len(sys.argv) == 2:
print(type(sys.argv))
print(sys.argv)
print('yes') //测试代码
很明显,长度等于2,且列表里有两个元素。
写到这里,让我想起了C语言中也有这样一个语句
main(int argc,char *argv[ ])
这个函数中两个参数的意义,argc记录的是命令行中输入参数的数目或者说个数,argv是一个拥有argc个元素的字符串数组,每个元素保存一个命令行中输入的参数,除了一些表示的不同,其实用法和python中的可以说是一模一样。
关于C语言这个函数用法更加详细的回答参考文章
本文含有隐藏内容,请 开通VIP 后查看