import difflib
#内置模块直接引用
text1 ="""
This module provides classes and functionsfor comparing sequences.
including HTML and context and unified diffs8.
difflibdocument v7.4
"""
text2 ="""
This module provides classes and functionsfor comparing sequences.
including HTML and context and unified diffs.
difflibdocument v7.5
add string
"""
text1_lines = text1.splitlines()#按行进行分割,读取为列表格式,一行一个列表元素
text2_lines = text2.splitlines()
d = difflib.Differ()#创建differ对象
diff = d.compare(text1_lines,text2_lines)#使用compare方法对俩个字符串进行对比print("\n".join(list(diff)))#每一方diff内容中加入换行符方便查看,diff内容转义为list格式才可以看到内容"""
符号含义
"-":包含在第一个序列行中,但不包含在第二个序列行
"+":包含在第二个序列行中,但不包含在第一个序列行
"":两个序列行一致
"?":行不存在于任一输入序列
"^":出两个序列行存在的差异字符
""""""
result:
This module provides classes and functionsfor comparing sequences. #表示此行俩个序列相同
- including HTML and context and unified diffs8. #俩个序列行中的尾单词存在差异,1有2没有
? -
+ including HTML and context and unified diffs.
- difflibdocument v7.4 #存在差异字符
? ^
+ difflibdocument v7.5
? ^
+ add string #2有1没有
"""
1.2 生成美观的对比HTML文档
import difflib
text1 ="""
This module provides classes and functionsfor comparing sequences.
including HTML and context and unified diffs8.
difflibdocument v7.4
"""
text2 ="""
This module provides classes and functionsfor comparing sequences.
including HTML and context and unified diffs.
difflibdocument v7.5
add string
"""
text1_lines = text1.splitlines()
text2_lines = text2.splitlines()
d = difflib.HtmlDiff()#生成html对象print(d.make_file(text1_lines,text2_lines))#转义为html类型