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