我想比较两个字符串列表之间的差异。出于我的目的,空白是噪音,不需要显示这些差异。阅读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')
.