我正在处理的项目涉及在同一文件的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行文本?
另外,我是从错误的角度来看这个吗?是否有图书馆可以做这个或类似的东西?
提前谢谢!