Python 如何做文本对比?超全实战教程(精准比对+相似度+可视化差异)

发布时间:2026/8/13 0:35:58
Python 如何做文本对比?超全实战教程(精准比对+相似度+可视化差异) 前言在工作中我们经常需要文本对比场景对比两份文档、配置文件差异自动化测试校验返回文本变更文本查重、模糊匹配相似度自动找出哪里删改、哪里新增Python 内置强大的文本比对工具无需复杂算法几行代码即可实现专业级文本对比。本篇博客涵盖精准逐行对比、差异可视化、文本相似度计算、模糊匹配全部可直接运行。一、最简单对比精准全等判断适合场景只判断是否一模一样不需要看差异代码示例a今天学习Python文本对比b今天学习Python文本对比c今天学习Python教程print(ab)# Trueprint(ac)# False业务常用忽略大小写/空格defclean_text(s):returns.replace( ,).lower()print(clean_text(a)clean_text(c))优点超快、零依赖缺点看不到具体哪里不一样二、专业对比Python内置 difflib查看详细差异Python 自带difflib标准库是文本对比神器可以精准输出删除的行新增的行修改的内容2.1 逐行文本差异对比importdifflib text1第一行内容 第二行内容 第三行内容 text2第一行内容 第二行【已修改】 第三行内容 第四行新增内容 # 分割成行lines1text1.splitlines(keependsTrue)lines2text2.splitlines(keependsTrue)diffdifflib.Differ()resultdiff.compare(lines1,lines2)print(.join(list(result)))输出标识说明-旧文本存在、新文本删除新文本新增内容无符号内容一致三、生成可视化对比网页超实用difflib可以一键生成HTML对比页面带颜色高亮可直接浏览器打开。importdifflib text11、Python基础 2、Python爬虫 text21、Python基础 2、Python数据分析 3、Python人工智能 diffdifflib.HtmlDiff()htmldiff.make_file(text1.splitlines(),text2.splitlines(),fromdesc旧文本,todesc新文本)withopen(diff.html,w,encodingutf-8)asf:f.write(html)print(对比网页已生成)运行后打开diff.html即可看到红色删除内容绿色新增内容左右分栏对比非常适合工作汇报、自动化测试报告。四、文本相似度对比查重、模糊匹配很多场景不是判相等而是判相似度例如文章查重、语句匹配。代码实现importdifflib s1Python文本对比教程s2Python文本比对教程s3Java开发教程m1difflib.SequenceMatcher(None,s1,s2)m2difflib.SequenceMatcher(None,s1,s3)print(s1-s2 相似度,round(m1.ratio(),2))print(s1-s3 相似度,round(m2.ratio(),2))输出s1-s2 相似度 0.92 s1-s3 相似度 0.15可以结合阈值实现智能查重相似度0.8判定为高度相似相似度0.3判定为完全不同五、高级模糊匹配fuzzywuzzy原生库精度有限工业级模糊匹配推荐fuzzywuzzy安装pipinstallfuzzywuzzy python-Levenshtein代码fromfuzzywuzzyimportfuzz a我喜欢Python文本对比b我非常喜欢Python文本对比技术print(fuzz.ratio(a,b))# 整体相似度print(fuzz.partial_ratio(a,b))# 局部匹配print(fuzz.token_sort_ratio(a,b))# 无序词语匹配适合短句对比、文案查重、OCR文本比对、搜索匹配。六、各种对比方案选型总结方案特点适用场景字符串 极速精准简单一致校验difflib.Differ查看行差异文档/代码对比difflib.HTML可视化对比生成对比报告SequenceMatcher相似度打分简单查重fuzzywuzzy超强模糊匹配文案、短句查重匹配总结精准一致判断直接用需要看差异、改了哪里用内置difflib需要可视化报告用 HtmlDiff 生成网页查重、模糊匹配用 SequenceMatcher / fuzzywuzzyPython 文本对比完全可以零算法基础实现覆盖 99% 工作场景。