我想比较字符串的两个列表之间的差异。 对于我而言,空白是噪音,这些差异并不需要显示。 读入difflib的文档 “的默认[用于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')