欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python filecmp.dircmp實(shí)現(xiàn)遞歸比對(duì)兩個(gè)目錄的方法

 更新時(shí)間:2020年05月22日 10:04:16   作者:longfeiwlf  
這篇文章主要介紹了python filecmp.dircmp實(shí)現(xiàn)遞歸比對(duì)兩個(gè)目錄的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

使用python filecmp模塊的dircmp類可以很方便的比對(duì)兩個(gè)目錄,dircmp的用法已經(jīng)有很多文章介紹,不再贅述。

可以help(filecmp.dircmp)查看幫助信息,其中提到的x.report()、x.report_partial_closure(),都只能打印兩目錄一級(jí)子目錄的比較信息。而x.report_full_closure()可以遞歸打印所有子目錄的比對(duì)信息,但是輸出太多,大多數(shù)情況下我們可能只關(guān)心兩目錄的不同之處。

help(filecmp.dircmp) 摘選:            
 
 | High level usage:              
 | x = dircmp(dir1, dir2)             
 | x.report() -> prints a report on the differences between dir1 and dir2 
 |  or                 
 | x.report_partial_closure() -> prints report on differences between dir1
 |   and dir2, and reports on common immediate subdirectories.  
 | x.report_full_closure() -> like report_partial_closure,    
 |   but fully recursive. 

    本文編寫的腳本,重點(diǎn)關(guān)注并實(shí)現(xiàn)兩個(gè)目標(biāo):

1)遞歸比對(duì)兩個(gè)目錄及其所有子目錄。

2)僅輸出兩目錄不同之處,包括文件名相同(common_files)但是文件不一致(diff_files),以及左、右目錄中獨(dú)有的文件或子目錄。

py腳本compare_dir.py內(nèi)容如下:

# -*- coding: utf-8 -*-
"""
@desc 使用filecmp.dircmp遞歸比對(duì)兩個(gè)目錄,輸出比對(duì)結(jié)果以及統(tǒng)計(jì)信息。
@author longfeiwlf
@date 2020-5-20
"""
 
from filecmp import dircmp
import sys
 
# 定義全局變量:
number_different_files = 0 # 文件名相同但不一致的文件數(shù)
number_left_only = 0 # 左邊目錄獨(dú)有的文件或目錄數(shù)
number_right_only = 0 # 右邊目錄獨(dú)有的文件或目錄數(shù)
 
 
def print_diff(dcmp):
 """遞歸比對(duì)兩目錄,如果有不同之處,打印出來,同時(shí)累加統(tǒng)計(jì)計(jì)數(shù)。"""
 global number_different_files
 global number_left_only
 global number_right_only
 for name in dcmp.diff_files:
  print("diff_file found: %s/%s" % (dcmp.left, name))
  number_different_files += 1
 for name_left in dcmp.left_only:
  print("left_only found: %s/%s" % (dcmp.left, name_left))
  number_left_only += 1
 for name_right in dcmp.right_only:
  print("right_only found: %s/%s" % (dcmp.right, name_right))
  number_right_only += 1
 for sub_dcmp in dcmp.subdirs.values():
  print_diff(sub_dcmp) # 遞歸比較子目錄
 
 
if __name__ == '__main__':
 try:
  mydcmp = dircmp(sys.argv[1], sys.argv[2])
 except IndexError as ie:
  print(ie)
  print("使用方法:python compare_dir_cn.py 目錄1 目錄2")
 else:
  print("\n比對(duì)結(jié)果詳情: ")
  print_diff(mydcmp)
  if (number_different_files == 0 and number_left_only == 0
    and number_right_only == 0):
   print("\n兩個(gè)目錄完全一致!")
  else:
   print("\n比對(duì)結(jié)果統(tǒng)計(jì):")
   print("Total Number of different files is: " 
     + str(number_different_files))
   print("Total Number of files or directories only in '"
     + sys.argv[1] + "' is: " + str(number_left_only))
   print("Total Number of files or directories only in '"
     + sys.argv[2] + "' is: " + str(number_right_only))

compare_dir.py腳本使用舉例:

總結(jié)

到此這篇關(guān)于filecmp.dircmp實(shí)現(xiàn)遞歸比對(duì)兩個(gè)目錄的文章就介紹到這了,更多相關(guān)filecmp.dircmp實(shí)現(xiàn)遞歸比對(duì)兩個(gè)目錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 獲取et和excel的版本號(hào)

    python 獲取et和excel的版本號(hào)

    在進(jìn)行OA開發(fā)過程中,經(jīng)常會(huì)用到當(dāng)前辦公軟件的版本號(hào),在python可以通過如下的方法獲取。
    2009-04-04
  • Python利用神經(jīng)網(wǎng)絡(luò)解決非線性回歸問題實(shí)例詳解

    Python利用神經(jīng)網(wǎng)絡(luò)解決非線性回歸問題實(shí)例詳解

    這篇文章主要介紹了Python利用神經(jīng)網(wǎng)絡(luò)解決非線性回歸問題,結(jié)合實(shí)例形式詳細(xì)分析了Python使用神經(jīng)網(wǎng)絡(luò)解決非線性回歸問題的相關(guān)原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • Python直接使用plot()函數(shù)畫圖的方法實(shí)例

    Python直接使用plot()函數(shù)畫圖的方法實(shí)例

    Python非常簡(jiǎn)單而又非常強(qiáng)大,它的功能之一就是畫出漂亮的圖表,實(shí)現(xiàn)數(shù)據(jù)的可視化,下面這篇文章主要給大家介紹了關(guān)于Python直接使用plot()函數(shù)畫圖的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Scrapy?之中間件(Middleware)的具體使用

    Scrapy?之中間件(Middleware)的具體使用

    本文主要介紹了Scrapy?之中間件(Middleware)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • pyqt5 QListWidget的用法解析

    pyqt5 QListWidget的用法解析

    這篇文章主要介紹了pyqt5 QListWidget的用法解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 基于Python制作短信發(fā)送程序

    基于Python制作短信發(fā)送程序

    這篇文章主要為大家詳細(xì)介紹了如何利用Python制作短信發(fā)送程序,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-01-01
  • Django使用詳解:ORM 的反向查找(related_name)

    Django使用詳解:ORM 的反向查找(related_name)

    今天小編就為大家分享一篇Django使用詳解:ORM 的反向查找(related_name),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 利用Python實(shí)現(xiàn)文件讀取與輸入以及數(shù)據(jù)存儲(chǔ)與讀取的常用命令

    利用Python實(shí)現(xiàn)文件讀取與輸入以及數(shù)據(jù)存儲(chǔ)與讀取的常用命令

    這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)文件讀取與輸入以及數(shù)據(jù)存儲(chǔ)與讀取的常用命令,文中還介紹了用python循環(huán)保存文件并循環(huán)讀取文件的方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • python?scatter繪制散點(diǎn)圖

    python?scatter繪制散點(diǎn)圖

    這篇文章主要介紹了python?scatter繪制散點(diǎn)圖,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • Python截取字符串的簡(jiǎn)單方法實(shí)例

    Python截取字符串的簡(jiǎn)單方法實(shí)例

    字符串切片也就是截取字符串,取子串,下面這篇文章主要給大家介紹了關(guān)于Python截取字符串的簡(jiǎn)單方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06

最新評(píng)論