1. 程式人生 > >文件與目錄差異對比模塊filecmp

文件與目錄差異對比模塊filecmp

import 不存在 file strong HA 目錄 差異 class 列表

簡介

當我們進行代碼審計或校驗備份結果時,往往需要檢查原始與目標目錄的文件一致性,python的標準庫已經自帶了滿足此需求的模塊filecmp。filecmp可以實現文件、目錄、遍歷子目錄的差異對比功能。比如報告中輸出目標目錄比原始多出的文件或子目錄,即使文件同名也會判斷是否為同一個文件(內容級對比)等,python2.3以上版本自帶了filecmp模塊,無需額外安裝。

模塊常用方法說明

filecmp 提供了三個操作方法,分別為cmp(單文件對比)、cmpfiles(多文件對比)、dircmp(目錄對比)

單文件對比,采用filecmp.cmp(f1,f2[,shallow])方法,比較文件名為f1和f2的文件,相同返回True,不相同返回False,shallow默認為True,意思是只根據os.stat()方法返回的文件基本信息進行對比,比如訪問的時間、修改時間、狀態改變時間等,會忽略文件內容的對比。當shallow為 False時,則os.stat()與文件內容同時進行校驗。

>>> import filecmp
>>> filecmp.cmp("nginx.conf.v1","nginx.conf.v2")
False
>>> 

多文件對比,采用filecmp.cmpfiles(dir1,dir2,common[,shallow])方法,對比dir1與dir2目錄給定文件清單。該方法返回文件名的三個列表,分別為匹配、不匹配、錯誤。匹配為包含匹配的文件列表,不匹配反之,錯誤列表包含了目錄不存在的文件、不具備讀權限或其他原因導致的不能比較的文件清單。

文件與目錄差異對比模塊filecmp