Python行对齐工具difflib
1 用途
1.1 功能
对比两个字符串数组之间的差异,以第一个参数为基准,与第二个参数比较。
1.2 使用场景
- 一个原文件,一个改过的文件,对比差异;
- 一个纯文本,一个带格式的,对比差异;
- 比较不同方法生成的文本的差异。
1.3 使用体验
实现的功能类似于 Linux 中的 diff 命令;内容少看不出来好,内容一多,效果明显。这功能手写得疯了。
2 使用方法
2.1 示例
1 | import difflib |
2.2 返回值
以空格开头的行表示两个文本相同,以 - 开头的行表示在第一个文本中的内容,以 + 开头的行表示在第二个文本中的内容。
2.3 扩展:difflibparser
开源项目 difflibparser 解析了 difflib 的结果,并以结构格式返回。
https://github.com/yebrahim/difflibparser
2.4 注意事项
- 比较之前最好还是简单做一下规范化,否则行差异太大对不齐。
- 其对比的逻辑可能是通过阈值判断是否为相同内容。
- 在代码中略做调整,即可定位行号。
- 当两行被识别为同一行时,呈现为先减后加。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.