本文实例讲述了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简单文本处理的方法