一、什么是difflib?

difflib为python的标准库模块,无需安装。
作用:对比文本之间的差异。
并且支持输出可读性比较强的HTML文档,与Linux下的diff 命令相似。
由difflib执行比较,比较的结果放到了一个html里面,只要找个浏览器打开此html文件,就能直观地看到比较结果,两份文件有差异的地方会高亮显示出来。
在版本控制方面非常有用。

二、比较方式
使用Differ进行字符串比较

''.join(list(difflib.Differ().compare(text1,text2)))#比较两个字符串内容,输出不同内容

使用HtmlDiff统计

d = difflib.HtmlDiff() #创建HtmlDiff对象
d.make_file(content1,content2) #通过make_file方法输出html格式的对比结果

三、 符号理解

符号

含义

‘-’

包含在第一个系列行中,但不包含第二个。

‘+’

包含在第二个系列行中,但不包含第一个。

’ ’

两个系列行一致。

‘?’

存在增量差异。

‘^’

存在差异字符。

四、常用参数讲解

splitlines() 按照行分割,返回一个包含各行作为元素的列表
keepends=True 保留换行符
keepends=False 不包含换行符

五、实例

使用Differ进行字符串比较

结果

java diff java difflib python_字符串比较


结果

java diff java difflib python_Diff_02


使用HtmlDiff统计

代码

java diff java difflib python_html_03

结果

生成html语言文本:

java diff java difflib python_字符串比较_04

以网页形式打开:

java diff java difflib python_字符串比较_05