Python实现比较两个文件夹中代码变化的方法
本文实例讲述了Python实现比较两个文件夹中代码变化的方法。分享给大家供大家参考。具体如下:
这里将修改代码后的目录与原始目录做对比,罗列出新增的代码文件,以及修改过的代码文件
#-*-coding:utf-8-*-
importos;
folderA="F:\\Projects\\FreeImageV3_14_1\\".lower();
folderB=u"E:\\Software\\图像解码库\\FreeImage3141\\FreeImage\\".lower();
filePathsA={};
filePathsB={};
forroot,dirs,filesinos.walk(folderA):
forfileNameinfiles:
filePathsA[(root+"\\"+fileName).lower()]=1;
forroot,dirs,filesinos.walk(folderB):
forfileNameinfiles:
filePathsB[(root+"\\"+fileName).lower()]=1;
#在filePathsA中,找到所有和filePathsB中不一致的文件的路径
modifiedFilePath=[];
addedFilePath=[];
forfilePathAinfilePathsA:
folderALen=len(folderA);
filePathB=folderB+filePathA[folderALen:];
idx=filePathA.rfind(".");
ifidx==-1:
continue;
ext=filePathA[idx+1:];
ext=ext.lower();
ifext!="c"andext!="h"andext!="cpp"andext!="cxx":
continue;
iffilePathBnotinfilePathsB:
addedFilePath.append(filePathA);
continue;
text_file=open(filePathA,"r");
textA=text_file.read();
text_file.close();
text_file=open(filePathB,"r");
textB=text_file.read();
text_file.close();
iftextA!=textB:
modifiedFilePath.append(filePathA);
output=open('res.txt','w');
output.write("addedfiles:\n");
forfilePathinaddedFilePath:
output.write(filePath+"\n");
output.write("modifiedfiles:\n");
forfilePathinmodifiedFilePath:
output.write(filePath+"\n");
output.close();
希望本文所述对大家的Python程序设计有所帮助。