Python difflib从ndiff而不是普通字符串获取连贯的数据

时间:2018-01-15 11:17:18

标签: python python-3.x compare comparison diff

我正在处理的项目涉及在同一文件的2个版本上运行比较算法,并将结果写入单个日志。

我正在尝试使用difflib.ndiff,因为我想要更改的确切字符,而统一/上下文差异不会给出这样的结果。

ndiff返回“不同样式增量”,不好的部分是,就我所见,这基本上是字符串列表的迭代器。在比较之后,我想添加行号和一些其他元素,以使比较更清晰。

例如:

文件1:

line not in file 2
line different from file 2

文件2:

line different from file 1

输出结果为:

- line not in file 2
- line different from file 2
?                          ^
+ line different from file 1
?                          ^

指示第二个文件中的第一行也不在第一个文件中,并指出已更改的确切字符。

我希望输出更加明确,例如:

Line 1 from file 2 not found in file 1.
- line not in file 2

Line 2 from file 2 has different characters than in file 2.
- line different from file 2
?                          ^
+ line different from file 1
?                          ^

问题是,为此我需要以某种方式解释ndiff返回的字符串的混乱。有没有办法真正获得差异对象的SequenceMatcher,这样我就可以一次读取和处理1个完整的差异而不是1行文本?

另外,我是从错误的角度来看这个吗?是否有图书馆可以做这个或类似的东西?

提前谢谢!

0 个答案:

没有答案