Python实现比较两个文件夹中代码变化的方法

时间:2021-05-22

本文实例讲述了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程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章