当前位置: 首页 > news >正文

Python行对齐工具difflib

1 用途

1.1 功能

对比两个字符串数组之间的差异,以第一个参数为基准,与第二个参数比较。

1.2 使用场景

  • 一个原文件,一个改过的文件,对比差异;
  • 一个纯文本,一个带格式的,对比差异;
  • 比较不同方法生成的文本的差异。

1.3 使用体验

实现的功能类似于 Linux 中的 diff 命令;内容少看不出来好,内容一多,效果明显。这功能手写得疯了。

2 使用方法

2.1 示例

import difflibdef compare_and_align(text1, text2):# 创建 Differ 对象d = difflib.Differ()# 使用 Differ 对象比较文本for x in d.compare(text1, text2):print(x)print('----')# 两个文本示例
text1 = ["This is a sample text for alignment.","a","666","xieyan",'3397']
text2 = ["Here is a sample text for aligning.",'667','xieyan','3397']# 比较并显示对齐结果
alignment_result = compare_and_align(text1, text2)

2.2 返回值

以空格开头的行表示两个文本相同,以 - 开头的行表示在第一个文本中的内容,以 + 开头的行表示在第二个文本中的内容。

2.3 扩展:difflibparser

开源项目 difflibparser 解析了 difflib 的结果,并以结构格式返回。

https://github.com/yebrahim/difflibparser

2.4 注意事项

  • 比较之前最好还是简单做一下规范化,否则行差异太大对不齐。
  • 其对比的逻辑可能是通过阈值判断是否为相同内容。
  • 在代码中略做调整,即可定位行号。
  • 当两行被识别为同一行时,呈现为先减后加。
http://www.lryc.cn/news/222320.html

相关文章:

  • Flutter利用GridView创建网格布局实现优美布局
  • IDEA 基本配置
  • 计算机组成原理平时作业一
  • iOS Crash 治理:淘宝VisionKitCore 问题修复
  • NSSM部署window服务
  • Go语言数据类型
  • Python爬取汽车之家二手车数据并作可视化
  • NeRF神经辐射场渲染过程详解,三维重建渲染过程基本原理_光线采样sample_pdf()和光线渲染render_rays ()代码详解
  • Msa类处理多序列比对数据
  • ChatGPT如何管理对话历史?
  • 独立键盘接口设计(Keil+Proteus)
  • 阿里云99元服务器2核2G3M带宽_4年396元_新老用户同享
  • 数据库实验:SQL的数据控制
  • 深度学习_10_softmax_实战
  • 基于SpringBoot+Vue的博物馆管理系统
  • 软件开发中常见的设计原则
  • Linux安装ffmpeg并截取图片和视频的缩略图使用
  • 第三章:人工智能深度学习教程-基础神经网络(第一节-ANN 和 BNN 的区别)
  • 高防CDN与高防服务器:为什么高防服务器不能完全代替高防CDN
  • 关于卷积神经网络的多通道
  • 19、Flink 的Table API 和 SQL 中的内置函数及示例(1)
  • <a>标签的download属性部分浏览器无法自动识别文件后缀
  • 前端图片压缩上传,减少等待时间!优化用户体检
  • Ionic header content footer toolbar UI实例
  • uniapp 解决H5跨域的问题
  • 对称加密(symmetric encryption)和非对称加密(Asymmetric Encryption)(密钥、公钥加密、私钥解密)AES、RSA
  • iOS 16.4 之后真机与模拟器无法使用Safari调试H5页面问题
  • 野火霸天虎 STM32F407 学习笔记_3 尝试寄存器映射方式点亮 LED 灯
  • ZZ308 物联网应用与服务赛题第F套
  • 怎样选择文件外发控制系统,让数据实现高效安全交换?