Python中sys.argv[ ]与Cpp中int main(int argc char *argv[ ])的用法
文章目录
前言
最近在学习ROS,在服务通信中老是遇到这两种用法,在以前系统学习Python和Cpp的时候,遗忘了这一知识点,现在进行补票。
一、Python中sys.argv[]
的用法
1、用法
🚀 sys.argv
的作用是获取运行python文件的时候命令行参数,且以list
形式存储参数,其中第一个参数sys.argv[0]
为python文件的存放路径(是相对路径),后续参数如sys.argv[1]
为打包的命令行参数。
2、示例
举一个简单的示例,大家应该就能明白,这个脚本文件的文件名为demo1.py
# 一个简单的示例
import sys
# 程序主入口
if __name__ == "__main__":
print("----程序启动----")
print("当前程序的路径为:", sys.argv[0])
print("所有的参数类型为:",list(map(type,sys.argv)))
for i in range(1,len(sys.argv)):
print("其余的打包命令行参数为:", sys.argv[i])
print("----程序结束----")
在命令行中启动该脚本文件
python ./demo1.py 10 20 30
运行的结果如下
![](https://i-blog.csdnimg.cn/blog_migrate/249432b27ef4c1a2aecdf9973a6dbdae.png)
解释如下:
即我们将文件的相对路径.\demo1.py
打包进入了sys.argv[0]
,然后将剩余的参数10,20,30
分别打包进了sys.argv[1],sys.argv[2],sys.argv[3]
二、Cpp中int main(int argc char *argv[])
的用法
1、用法
🚀 argc
用来统计你运行程序时送给main函数的命令行参数的个数,而argv
同样是存放获取运行Cpp文件的时候命令行参数,其中第一个参数argv[0]
为Cpp文件的存放路径(是相对路径),后续参数如argv[1]
为打包的命令行参数。
2、示例
举一个简单的示例,这个脚本文件的名字为demo2.cpp
//一个简单的示例
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("---程序开始---\n");
printf("当前打包的个数为:%d\n", argc);
int i;
for (i = 0; i < argc; i++)
{
printf("第%d个参数为:%s\n", i, argv[i]);
}
printf("---程序结束---\n");
}
运行Cpp脚本文件和Python脚本文件还不太一样,Cpp需要编译,不可以直接运行,我们使用以下语句可以编译Cpp脚本文件.cpp
并且生成可执行文件.exe
首先编译cpp文件,生成可执行文件exe,语法是
gcc -o 输出可执行文件名.exe 脚本文件.cpp(路径)
gcc -o demo2.exe demo1.cpp
再使用
ls
查看是否编译成功
![](https://i-blog.csdnimg.cn/blog_migrate/56aeb45b112b47fe4e9eff5bebfaded8.png)
然后使用可执行文件.exe
进行执行,
.\demo2.exe 10 20 30 hello world!
效果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/3db323ba8470a16d381eb965f3e83653.png)