Python一起来找茬—difflib模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python一起来找茬—difflib模块相关的知识,希望对你有一定的参考价值。

模块difflib

比较并找出两个文本内容的不同

import difflib

text1="""1. Beautiful is better than ugly.
2. Explicit is better than implicit.
3. Simple is better than complex.
4. Complex is better than complicated.
""".splitlines(keepends=True)

text2="""1. Beautiful is better than ugly.
3.   Simple is better than complex.
4. Complicated is better than complex.
5. Flat is better than nested.
""".splitlines(keepends=True)

#第一种方式:
d = difflib.Differ()
result = list(d.compare(text1,text2))
result = ‘‘.join(result)
print(result)
"""
运行结果以文本行方式显示,不容易理解
"""

#第二种方式:
d = difflib.HtmlDiff()
with open(‘diffirent.html‘,‘w‘) as f:
    f.write(d.make_file(text1,text2))
"""
生成一个html文件,用浏览器打开,会显示两个文本内容的不同之处
"""

第一种方式:
技术分享图片
第二种方式:
技术分享图片

直接比较两个文件:

import difflib

file1 = ‘/etc/passwd‘
file2 = ‘/tmp/passwd‘

with open(file1) as f1,open(file2) as f2:
    text1 = f1.readlines()
    text2 = f2.readlines()

d = difflib.HtmlDiff()
with open(‘passwd.html‘,‘w‘) as f:
    f.write(d.make_file(text1,text2))

技术分享图片

技术分享图片

以上是关于Python一起来找茬—difflib模块的主要内容,如果未能解决你的问题,请参考以下文章

一起来找茬-开发写的神奇左连接

python difflib.md

python中difflib内置模块之文本对比

python difflib模块实现两个文件差异对比,并输出html格式。

python difflib文本比较利器,入手不亏

Python2.7-difflib