difflib中是否有任何比较方法或选项只能返回具有差异的行?

到目前为止,我已经尝试过Differ, HtmlDiffer, difflib.unified_diff,即使它们没有区别,它们也总是从比较数据中返回所有行。

最佳答案

unified_diff不会返回所有行,但会在上下文的两边显示一些行。如果不需要任何上下文,可以使用n=0

import difflib

a = ['unchanged', 'unchanged', 'unchanged', 'a', 'unchanged', 'unchanged']
b = ['unchanged', 'unchanged', 'unchanged', 'b', 'unchanged', 'unchanged']

[print(x) for x in difflib.unified_diff(a, b, n=0, lineterm='')]




---
+++
@@ -4 +4 @@
-a
+b


如果需要,可以从中轻松地仅提取最后两行。

关于python - 如何仅从libdiff比较结果中过滤增量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59875662/

10-11 07:00