[python]difflib 模块 --- 实现文件的内容比对

这是一篇讲解如何正确使用 difflib 的示例,能让你实现文件的内容比对。

difflib 作为 python 的标准库,无需安装,作用是对比文本之间的差异,而且支持输出可读性比较强的 HTML 文档。

基础例子

import difflib
a = ['1', '2', "A", "abcde"]
b = ['2', '3', "A", "Abcde"]
diff = difflib.HtmlDiff()    # 创建HtmlDiff 对象
result = diff.make_file(a, b)  # 通过make_file 方法输出 html 格式的对比结果
print(result)  # 需要将result写入html中。

[python]difflib 模块 --- 实现文件的内容比对

相似度

# 返回序列相似性的度量,作为[0,1]范围内的浮点数

import difflib

s = difflib.SequenceMatcher(None, "abcd", "bcde")

s.ratio()  # 结果为0.75

网络上有很多代码比较工具,svn 和 git 也支持代码比较。python 肯定也可以做到,而且代码实现,也非常简单。

import difflib
diff = difflib.HtmlDiff()
loads = ''
with open('D:/python/test1.py','r') as f:
    loads = f.readlines()

mems = ''
with open('D:/python/test2.py', 'r') as f:
    mems = f.readlines()
   
with open('htmlout.html','a+') as fo:
    fo.write(diff.make_file(loads, mems))

一个 完整的 文件内容比较 例子。
继续学习 ~