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,即可打印出所有文件的绝对路径,如下所示:
获取路径之后就可以对文件进行一系列的操作。