本文实例讲述了Python实现比较两个文件夹中代码变化的方法。分享给大家供大家参考。具体如下:
这里将修改代码后的目录与原始目录做对比,罗列出新增的代码文件,以及修改过的代码文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# -*- 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程序设计有所帮助。