Python模組學習filecmp檔案比較

2022-08-24 15:24:16 字數 1378 閱讀 9055

python模組學習filecmp檔案比較

filecmp模組用於比較檔案及資料夾的內容,它是乙個輕量級的工具,使用非常簡單。python標準庫還提供了difflib模組用於比較檔案的內容。關於difflib模組,且聽下回分解

filecmp定義了兩個函式,用於方便地比較檔案與資料夾: 

filecmp.cmp(f1, f2[, shallow]): 

比較兩個檔案的內容是否匹配。引數f1,

f2指定要比較的檔案的路徑。可選引數shallow指定比較檔案時是否需要考慮檔案本身的屬性(通過os.stat函式可以獲得檔案屬性)。如果檔案內容匹配,函式返回true,否則返回false。 

filecmp.cmpfiles(dir1, dir2, common[,

shallow]): 

比較兩個資料夾內指定檔案是否相等。引數dir1,

dir2指定要比較的資料夾,引數common指定要比較的檔名列表。函式返回包含3個list元素的元組,分別表示匹配、不匹配以及錯誤的檔案列表。錯誤的檔案指的是不存在的檔案,或檔案被瑣定不可讀,或沒許可權讀檔案,或者由於其他原因訪問不了該檔案。 

filecmp模組中定義了乙個dircmp類,用於比較資料夾,通過該模擬較兩個資料夾,可以獲取一些詳細的比較結果(如只在a資料夾存在的檔案列表),並支援子資料夾的遞迴比較。 

dircmp提供了三個方法用於報告比較的結果: 

•report():只比較指定資料夾中的內容(檔案與資料夾) 

•report_partial_closure():比較資料夾及第一級子資料夾的內容 

•report_full_closure():遞迴比較所有的資料夾的內容 

dircmp還提供了下面這些屬性用於獲取比較的詳細結果: 

•left_list:左邊資料夾中的檔案與資料夾列表; 

•right_list:右邊資料夾中的檔案與資料夾列表; 

•common:兩邊資料夾中都存在的檔案或資料夾; 

•left_only:只在左邊資料夾中存在的檔案或資料夾; 

•right_only:只在右邊資料夾中存在的檔案或資料夾; 

•common_dirs:兩邊資料夾都存在的子資料夾; 

•common_files:兩邊資料夾都存在的子檔案; 

•common_funny:兩邊資料夾都存在的子資料夾; 

•same_files:匹配的檔案; 

•diff_files:不匹配的檔案; 

•funny_files:兩邊資料夾中都存在,但無法比較的檔案; 

•subdirs:我沒看明白這個屬性的意思,python手冊中的解釋如下:a dictionary

objects 

簡單就是美!我只要檔案比較的結果,不想去關心檔案是如何是比較的,hey,就用python吧~~

python學習(模組)

模組搜尋路徑 匯入乙個叫 spam 的模組時,直譯器先在當前目錄中搜尋名為 spam.py 的檔案,然後在環境變數 pythonpath 指琮的目錄列表中搜尋,然後是環境變數 path 中的路徑列表。如果 pythonpath 沒有設定,或者檔案沒有找到,接下來搜尋安裝目錄,在 unix 中,通常是...

python 模組學習

一 from django.contrib.auth.hashers import make password 通過函式名即可發現,主要有兩個函式,分別是建立密碼和驗證 用法ps 123456 dj ps make password ps,none,pbkdf2 sha256 建立django密碼,...

python學習 模組

time import time time.ctime 獲取當前時間的字串 time.localtime 返回值是strcut time型別的物件 st time.localtime st.tm yday 現在是今年第幾天 st.tm hour 現在是今天第幾個小時 st.tm mon 現在是今年的...