5

我想比较两个字符串列表之间的差异。出于我的目的,空白是噪音,不需要显示这些差异。阅读difflib 的文档,“默认 [for charjunk] 是模块级函数IS_CHARACTER_JUNK(),它过滤掉空白字符”。完美,除非我认为它不起作用,或者没有太大的不同(<- 双关语!)。

import difflib
A = ['3  4\n']
B = ['3 4\n']
print ''.join(difflib.ndiff(A, B))  # default: charjunk=difflib.IS_CHARACTER_JUNK

输出:

- 3  4
?  -
+ 3 4

我尝试了其他一些linejunk选项,但没有一个实际上忽略了空格导致的差异。我对什么有错误的解释charjunk吗?

作为旁注,我可以通过预处理我的字符串以使用re.sub(r'\W+', ' ', 'foo\t bar').

4

0 回答 0