python中的sys.argv和C语言中的 char *argv

发布于:2022-07-24 ⋅ 阅读:(366) ⋅ 点赞:(0)

目录

问题

最近在看代码的时候,遇到了一个语句,如下所示

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 后查看