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程序设计有所帮助。