[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中。
相似度
# 返回序列相似性的度量,作为[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))
一个 完整的 文件内容比较 例子。
继续学习 ~
这个必须点赞👍
👍
python 的一个标准库,可以实现代码比较功能。 虽然现在网络上很多这种工具,但还是想用 python 实现 ~
感觉好高深啊 😄