免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      python 模塊 filecmp & difflib

      主要介紹兩個(gè) Python 中常用于比較數(shù)據(jù)的模塊,一個(gè)是 filecmp 模塊,另一個(gè)是 difflib 模塊。其中,前者主要用于比較文件目錄,后者主要用于比較序列的類和函數(shù),下面具體介紹兩者的區(qū)別。

      filecmp 模塊

      filecmp 模塊作為 Python 提供的標(biāo)準(zhǔn)庫(kù)之一,無(wú)需安裝,模塊定義了用于比較文件及目錄的函數(shù),對(duì)服務(wù)器上的文件目錄的校驗(yàn)非常實(shí)用。

      cmp(f1,f2)函數(shù)

      cmp(f1,f2)函數(shù)用于比較兩個(gè)文件是否相同,如果 f1 和 f2 相等則返回True,否則返回False。例如:

      #新建兩個(gè)文件f1 和 f2#f1存儲(chǔ)的數(shù)據(jù)是1,2,3#f2存儲(chǔ)的數(shù)據(jù)是4,5,6import filecmpprint(filecmp.cmp(“f1″,”f1”))print(filecmp.cmp(“f1″,”f2”))FalseTrue

      cmpfiles(dir1, dir2, common[, shallow])函數(shù)

      cmpfiles(dir1, dir2, common[, shallow])函數(shù)可以用于比較兩個(gè)文件夾內(nèi)指定的文件是否相等,參數(shù)dir1 和 dir2 是兩個(gè)文件夾路徑,參數(shù)common是指定要比較的文件名列表。

      例如,cmpfiles(‘a(chǎn)’, ‘b’, [‘c’, ‘d/e’]) 將會(huì)比較 a/c 與 b/c 以及 a/d/e 與 b/d/e?!痗’ 和 ‘d/e’ 將會(huì)各自出現(xiàn)在返回的三個(gè)列表里的某一個(gè)列表中。

      clear_cache()函數(shù)

      clear_cache()函數(shù)可以清除文件比較緩沖區(qū),當(dāng)比較的文件不斷地快速修改時(shí),就可以使用這個(gè)函數(shù)來(lái)更新文件的信息。

      除了以上三個(gè)函數(shù)外,filecmp 還包含一個(gè)用于比較目錄的類——dircmp。

      類dircmp(a,b[,ignore[,hide]])用于創(chuàng)建一個(gè)比較目錄 a 和 b 的新的目錄比較對(duì)象。ignore 是需要忽略的文件名列表,且默認(rèn)為 filecmp.DEFAULT_IGNORES。hide 是需要隱藏的文件名列表,且默認(rèn)為 [os.curdir, os.pardir]。

      dircmp 類提供了三個(gè)方法用于比較報(bào)告:

      • report() 將 a 與 b 之間的比較結(jié)果打印出來(lái)
      • report_partial_closure() 打印 a 與 b 及共同直接子目錄的比較結(jié)果
      • report_full_closure() 打印 a 與 b 及共同子目錄比較結(jié)果(遞歸地)

      difflib 模塊

      difflib 模塊是 Python 提供的比較序列差異的功能,包含以下三個(gè)類:

      • Differ 對(duì)字符串進(jìn)行比較
      • HtmlDiff 將比較結(jié)果輸出為html格式
      • SequenceMatcher 任意類型序列的比較 (可以比較字符串)

      Differ類

      Differ類的作用是比較由文本行組成的序列,并產(chǎn)生可供人閱讀的差異或增量信息。Differ 統(tǒng)一使用 SequenceMatcher 來(lái)完成行序列的比較以及相似(接近匹配)行內(nèi)部字符序列的比較。

      雙字母代碼

      含義

      ’- ‘

      行為序列 1 所獨(dú)有

      ’+ ‘

      行為序列 2 所獨(dú)有

      ’ ‘

      行在兩序列中相同

      ’? ‘

      行不存在于任一輸入序列

      以 ‘?’ 打頭的行嘗試將視線引至行以外而不存在于任一輸入序列的差異。 如果序列包含制表符則這些行可能會(huì)令人感到迷惑。

      HtmlDiff類

      HtmlDiff類可以被用來(lái)創(chuàng)建HTML表格 (或者說(shuō)包含表格的html文件) ,兩邊對(duì)應(yīng)展示或者行對(duì)行的展示比對(duì)差異結(jié)果。

      make_file(fromlines, tolines [, fromdesc][, todesc][, context][, numlines])

      make_table(fromlines, tolines [, fromdesc][, todesc][, context][, numlines])

      以上兩個(gè)方法都可以用來(lái)生成包含一個(gè)內(nèi)容為比對(duì)結(jié)果的表格的html文件,并且部分內(nèi)容會(huì)高亮顯示。

      SequenceMatcher類

      SequenceMatcher類可用于比較任何類型的序列對(duì),只要序列元素為 hashable 對(duì)象。其思路是找到不包含“垃圾”元素的最長(zhǎng)連續(xù)匹配子序列;所謂“垃圾”元素是指其在某種意義上沒(méi)有價(jià)值,例如空白行或空白符。

      import difflibfrom pprint import pprinta = ‘pythonclub.org is wonderful’b = ‘Pythonclub.org also wonderful’s = difflib.SequenceMatcher(None, a, b)print (“s.get_matching_blocks():”)pprint(s.get_matching_blocks())print (“s.get_opcodes():”)for tag, i1, i2, j1, j2 in s.get_opcodes(): print (“%7s a[%d:%d] (%s) b[%d:%d] (%s)” % (tag, i1, i2, a[i1:i2], j1, j2, b[j1:j2]))

      輸出結(jié)果:

      s.get_matching_blocks():[Match(a=1, b=1, size=14), Match(a=16, b=17, size=1), Match(a=17, b=19, size=10), Match(a=27, b=29, size=0)]s.get_opcodes():replace a[0:1] (p) b[0:1] (P) equal a[1:15] (ythonclub.org ) b[1:15] (ythonclub.org )replace a[15:16] (i) b[15:17] (al) equal a[16:17] (s) b[17:18] (s) insert a[17:17] () b[18:19] (o) equal a[17:27] ( wonderful) b[19:29] ( wonderful)

      總結(jié)

      本節(jié)內(nèi)容介紹了 Python 中 filecmp 和 difflib 兩個(gè)模塊的常用操作,對(duì)于實(shí)現(xiàn)文件及目錄的比較提供了支撐。

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年7月4日 09:20
      下一篇 2022年7月4日 09:21

      相關(guān)推薦

      • 存儲(chǔ)過(guò)程語(yǔ)法(sql server存儲(chǔ)過(guò)程語(yǔ)法)

        今天小編給各位分享存儲(chǔ)過(guò)程語(yǔ)法的知識(shí),其中也會(huì)對(duì)sql server存儲(chǔ)過(guò)程語(yǔ)法進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧! oracle存儲(chǔ)過(guò)程基本語(yǔ)法…

        2022年11月26日
      • 科比19歲女兒遭自稱與她生“科比式孩子”男子跟蹤騷擾

        極目新聞?dòng)浾咄趿亮咙S佳琪 據(jù)??怂剐侣劸W(wǎng)報(bào)道,當(dāng)?shù)貢r(shí)間11月21日,已故籃球巨星科比·布萊恩特的長(zhǎng)女娜塔莉亞·布萊恩特21日向法院提交臨時(shí)限制令,聲稱這位32歲的前科從十幾歲起就騷…

        2022年11月24日
      • 免費(fèi)清理c盤的軟件(清理c盤空間不影響系統(tǒng))

        電腦用久了慢如龜速,還卡頓,這最大的原因啊就是C盤空間不足造成的。 即使電腦配置再好,或者硬盤再快,如果長(zhǎng)時(shí)間沒(méi)有打掃C盤,打開(kāi)文件或者穩(wěn)定之類的,都卡得讓人頭大。 這時(shí)候呢不要去…

        2022年11月24日
      • pdf虛擬打印機(jī)(添加pdf虛擬打印機(jī))

        本文主要講的是pdf虛擬打印機(jī),以及和添加pdf虛擬打印機(jī)相關(guān)的知識(shí),如果覺(jué)得本文對(duì)您有所幫助,不要忘了將本文分享給朋友。 pdf虛擬打印機(jī)具體是什么功能? 電腦虛擬打印機(jī)的功能有…

        2022年11月24日
      • 大疆發(fā)布DJI O3 Air Unit圖傳解決方案 售價(jià)1499元

        大疆日前發(fā)布了最新的DJI O3 Air Unit 數(shù)字圖傳解決方案,該方案將DJI O3+ 圖傳與1/1.7 英寸影像傳感器相機(jī)模塊集于一身,具有高畫質(zhì)、低延時(shí)、遠(yuǎn)距離等特點(diǎn)。 …

        2022年11月23日
      • ftp端口號(hào)(ftp端口號(hào)可以自定義嗎)

        FTP端口號(hào)是21在FTP服務(wù)器中,我們往往會(huì)給不同的部門或者某個(gè)特定的用戶設(shè)置一個(gè)帳戶但是,這個(gè)賬戶有個(gè)特點(diǎn),就是其只能夠訪問(wèn)自己的主目錄服務(wù)器通過(guò)這種方式來(lái)保障FTP服務(wù)上其他…

        2022年11月21日
      • 軟件開(kāi)發(fā)階段的6大劃分詳解(需求規(guī)格說(shuō)明書在哪個(gè)階段)

        1計(jì)劃 對(duì)所要解決的問(wèn)題進(jìn)行總體定義,包括了解用戶的要求及現(xiàn)實(shí)環(huán)境,從技術(shù)、經(jīng)濟(jì)和社會(huì)因素等3個(gè)方面研究并論證本軟件項(xiàng)目的可行性,編寫可行性研究報(bào)告,探討解決問(wèn)題的方案,并對(duì)可供使…

        2022年11月19日
      • 給手機(jī)安裝了Windows 11(手機(jī)上玩電腦游戲的軟件)

        電腦上體驗(yàn)了一番Windows 11 ,感覺(jué)怎么樣?接下來(lái)想要在手機(jī)上嘗試嘗試嗎?不是遠(yuǎn)程桌面,也并不是虛擬機(jī),而是手機(jī)直接運(yùn)行原生的win11系統(tǒng)! 那么最近小編就看到網(wǎng)上不少朋…

        2022年11月18日
      • 申請(qǐng)疫工補(bǔ)必須要入會(huì)嗎

        一、申報(bào)流程 1.微信搜索 “天山工惠” 小程序 2.點(diǎn)擊海報(bào)或找到“疫工補(bǔ)” 模塊通過(guò)手機(jī)號(hào)登錄,按要求內(nèi)容完成申請(qǐng)(不是工會(huì)會(huì)員的請(qǐng)先點(diǎn)擊“入會(huì)轉(zhuǎn)會(huì)”模塊加入工會(huì)后再申請(qǐng)) 3…

        2022年11月17日
      • 字體庫(kù)在哪個(gè)文件夾(字體庫(kù)在哪個(gè)文件夾里)

        今天小編給各位分享字體庫(kù)在哪個(gè)文件夾的知識(shí),其中也會(huì)對(duì)字體庫(kù)在哪個(gè)文件夾里進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧! 字體庫(kù)在Windows文件夾里面的…

        2022年11月17日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息