本文实例讲述了Python实现比较两个文件夹中代码变化的方法。分享给大家供大家参考。具体如下:
这里将修改代码后的目录与原始目录做对比,罗列出新增的代码文件,以及修改过的代码文件
# -*- coding: utf-8 -*- import os; folderA = \"F:\\\\Projects\\\\FreeImageV3_14_1\\\\\".lower(); folderB = u\"E:\\\\Software\\\\图像解码库\\\\FreeImage3141\\\\FreeImage\\\\\".lower(); filePathsA = {}; filePathsB = {}; for root,dirs,files in os.walk(folderA): for fileName in files: filePathsA[(root + \"\\\\\" + fileName).lower()] = 1; for root,dirs,files in os.walk(folderB): for fileName in files: filePathsB[(root + \"\\\\\" + fileName).lower()] = 1; # 在filePathsA中,找到所有和filePathsB中不一致的文件的路径 modifiedFilePath = []; addedFilePath = []; for filePathA in filePathsA: folderALen = len(folderA); filePathB = folderB + filePathA[folderALen:]; idx = filePathA.rfind(\".\"); if idx == -1: continue; ext = filePathA[idx + 1:]; ext = ext.lower(); if ext != \"c\" and ext != \"h\" and ext != \"cpp\" and ext != \"cxx\": continue; if filePathB not in filePathsB: 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(); if textA != textB: modifiedFilePath.append(filePathA); output = open(\'res.txt\', \'w\'); output.write(\"added files:\\n\"); for filePath in addedFilePath: output.write(filePath + \"\\n\"); output.write(\"modified files:\\n\"); for filePath in modifiedFilePath: output.write(filePath + \"\\n\"); output.close();
希望本文所述对大家的Python程序设计有所帮助。
下一篇:python简单文本处理的方法