Python模組學習 —- filecmp 檔案比較

來源:互聯網
上載者:User

    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 mapping names in common_dirs to dircmp objects

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.