filecmp定義了兩個函式,用於方便地比較檔案與資料夾:
filecmp.cmp(f1, f2[, shallow]):
比較兩個檔案的內容是否匹配。引數f1, f2指定要比較的檔案的路徑。可選引數shallow指定比較檔案時是否需要考慮檔案本身的屬性(通過 os.stat函式可以獲得檔案屬性)。如果檔案內容匹配,函式返回true,否則返回false,filecmp.cmpfiles(dir1, dir2, common[, shallow]):執行結果如下:import filecmp
s = filecmp.cmp("qin.txt", "jian.txt")
print(s)
如果倆檔案相同則返回true , 如果不同則返回false
比較兩個資料夾內指定檔案是否相等。引數dir1, dir2指定要比較的資料夾,引數common指定要比較的檔名列表。函式返回包含3個list元素的元組,分別表示匹配、不匹配以及錯誤的檔案列表。錯誤的檔案指的是不存在的檔案,或檔案被瑣定不可讀,或沒許可權讀檔案,或者由於其他原因訪問不了該檔案。執行結果如下:import filecmp
match,mismatch,errors = filecmp.cmpfiles("qin", "fu",['a.txt','b.txt'])
print("%s\n%s\n%s"%(match,mismatch,errors))
['a.txt'] -- 表示兩個檔案都有該檔案,並且完全匹配
['b.txt'] -- 表示兩個檔案都有該檔案,但是不匹配
-- 表示沒有錯誤的檔案
filecmp模組中定義了乙個dircmp類,用於比較資料夾,
通過該模擬較兩個資料夾,可以獲取一些詳細的比較結果(如只在a資料夾存在的檔案列表),並支援子資料夾的遞迴比較。
dircmp提供了三個方法用於報告比較的結果:
report():只比較指定資料夾中的內容(檔案與資料夾)report_partial_closure():比較資料夾及第一級子資料夾的內容report_full_closure():遞迴比較所有的資料夾的內容
例子:在資料夾"qin"中含有檔案"a.txt", 在資料夾"fu"中含有檔案"a.txt"和"b.txt",其兩個資料夾下面的檔案"a.txt"內容一樣,輸出結果如下:import filecmp
x = filecmp.dircmp("qin","fu")
diff = x.report()
print(diff)
如果兩個資料夾下面的檔案"a.txt"內容不相同那麼結果如下:diff qin fu
only in fu: ["b.txt"]
identical files: ["qin.txt"]
輸出結果如下:
diff qin fu
only in fu: ["b.txt"]
differing files: ["a.txt"]
dircmp還提供了下面這些屬性用於獲取比較的詳細結果:
通過例項解析Python呼叫json模組
介紹 今天介紹一種資料格式,json。json是j ascript object notation的縮寫,區別於txt csv,json編碼格式更加靈活,在工作也會經常遇到。在python中要讀寫json是十分方便的,只需要呼叫json模組。使用直接匯入模組 import json 兩個讀寫資料的函...
Python 反射,通過字串來匯入模組
反射 通過字串額形式,匯入模組 通過字串的形式,去模組中尋找指定函式,並執行函式。import 字串形式的模組名稱 就可以匯入相應的模組 通過內建函式 getattr 模組名,函式的字串名稱 來指定需要執行的函式 注意找到了函式,還需要在函式名後面加 來執行函式。getattr,setattr,ha...
python模組 python模組介紹
一 簡介 模組是乙個包含所有你定義的函式和變數的檔案,其字尾名是.py。模組可以被其他程式匯入來使用模組具有的功能。這也是使用python標準庫的方式。首先使用import匯入time包,這樣意味著我們能夠使用time包裡的所有公共內容。最後利用time包的相關計時功能計算出該程式執行時長。呼叫模組...