兩個字符串的差異對比


本示例通過使用difflib模塊實現兩個字符串的差異對比,然后以版本控制風格進行輸出。

#!/usr/bin/env python

import difflib

text1 = """text1:   #定義字符串1
This module provides classes and functions for comparing sequences.
including HTML and context and unified diffs.
difflib document v7.4
add string"""

text1_lines = text1.splitlines()                #以行進行分割,以便進行對比
text2 = """text2:           #定義字符串2
This module provides classes and functions for comparing sequences.
including HTML and context and unified diffs.
difflib document v7.5
add string"""

text2_lines = text2.splitlines()
d = difflib.Differ()            #創建Differ()對象
diff = d.compare(text1_lines,text2_lines)           #采用compare方法對字符串進行比較
print('\n'.join(list(diff)))

被示例采用Differ()類對兩個字符串進行比較,另外difflib的SuquenceMatcher()類支持任意類型序列的比較,HtmlDiff()類支持將比較結果輸出為HTML格式,示例運行結果如下:

[root@localhost diff_lib]# python3 simple1.py
- text1:   #定義字符串1
+ text2:           #定義字符串2
  This module provides classes and functions for comparing sequences.
  including HTML and context and unified diffs.
- difflib document v7.4
?                     ^

+ difflib document v7.5
?                     ^

  add string

符號含義說明:

符號 含義
'_' 包含在第一行序列行中,但不包含在第二行序列行
'+' 包含在第二行序列行中,但不包含在第一行序列行
'' 兩個序列行一致
'?' 標志兩個序列行存在增量差異
'^' 標志出兩個序列行存在的差異字符

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM