本文實例講述了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程序設計有所幫助。