Python 3 自動化運維之目錄差異比較filecmp模組
阿新 • • 發佈:2018-12-09
#目錄差異對比filecmp import filecmp #定義左目錄 leftDir = "/home/abc/dir1" #定義右目錄 rightDir = "/home/abc/dir2" #目錄比較 忽略test.py dirObj = filecmp.dircmp(leftDir, rightDir, ['test.py']) #輸出對比結果資料報表 dirObj.report() #比較當前指定目錄中的內容 dirObj.report_partial_closure() #比較當前目錄及第一子目錄的內容 dirObj.report_full_closure() #遞迴比較所有目錄內容 #列印輸出 #左目錄中檔案和目錄列表 print('left_list:'+str(dirObj.left_list)) #右目錄中的檔案和目錄 print('right_list:'+str(dirObj.right_list)) #兩邊共同存在的檔案或目錄 print('common:'+str(dirObj.common)) #只在左目錄中的檔案或目錄 print('left_only:'+str(dirObj.left_only)) #只在右目錄中的檔案或目錄 print('right_only:'+str(dirObj.right_only)) #兩邊都存在的子目錄 print('common_dirs:'+str(dirObj.common_dirs)) #兩邊都存在的子檔案 print('common_files:'+str(dirObj.common_files)) #兩邊都存在的子目錄(不同目錄型別或os.stat()記錄的錯誤) print('common_funny:'+str(dirObj.common_funny)) #匹配相同的檔案 print('same_file:'+str(dirObj.same_files)) #不匹配的檔案 print('diff_files:'+str(dirObj.diff_files)) #兩邊目錄中存在 但無法比較的檔案 print('funny_files:'+str(dirObj.funny_files))
filecmp模組提供了三種操作方法:
1.cmp 單檔案對比
filecmp.cmp('a.txt', 'b.txt')
2.cmpfiles 多檔案對比
filecmp.cmpfiles('/home/abc/dir1', '/home/abc/dir2', ['f1', 'f2', 'f3', 'f4', 'f5'])
3.dircmp 目錄對比