python中的sys.argv与C语言main函数char argv[],这两个都是用来获取外部输入的参数,本质上没有什么区别。在windows上我们可以直接将文件拖动到对应的软件直接打开,其实就是可以利用这个来实现。
-
对于python中的sys.argv,实际上是一个表,用来存储外部输入的参数,通过下面代码可以看出:
import sys import os for i in sys.argv: print(i) os.system('pause')执行以上代码的同时传入两个参数:
PS D:\Desktop\python_test\file> .\getArgv.py test1 test2 D:\Desktop\python_test\file\getArgv.py test1 test2 请按任意键继续. . .一共打印出三行:
第一行sys.argv[0]为python文件的绝对路径
第二行sys.argv[1]为传入的第一个参数 test1
第三行sys.argv[2]为传入的第一个参数 test2 -
对于C语言,外部参数通过main函数的形参传入,通过下面代码可以看出:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc,char *argv[]) { int i = 0; for (i = 0; i < argc; i++) { printf("%s\n", argv[i]); } system("pause"); return 0; }main函数的形参argc为外部参数的个数,argv为一个二维数组,存放外部参数,编译执行上面代码, 并传入两个参数:
PS D:\Desktop\python_test> gcc .\test.c -o test.exe PS D:\Desktop\python_test> .\test.exe test1 test2 D:\Desktop\python_test\test.exe test1 test2 请按任意键继续. . .同样打印出三行内容:
第一行argv[0]为test.exe文件的绝对路径
第二行argv[1]为传入的第一个参数test1
第三行argv[2]为传入的第一个参数test2 -
回到最初,我们将第一个python代码打包为getArgv.exe文件后,将电脑上的任意文件/文件夹拖动到exe文件上即可获取到该文件/文件夹的绝对路径

如上图所示,将其它txt文件选中后拖动到getArgv.exe,即可打印出所有文件的绝对路径,如下所示:

获取路径之后就可以对文件进行一系列的操作。

本文探讨了Python的sys.argv和C语言main函数的char*argv[]如何捕获外部参数。两者都能获取命令行输入,sys.argv是一个列表,而C语言中的argv是字符指针数组。通过示例代码展示了如何打印传入参数,并提到将Python脚本打包成exe后,可接收拖拽文件的路径进行操作。
1万+

被折叠的 条评论
为什么被折叠?



