我想比较两个字符串列表之间的差异。就我的目的而言,空白是噪音,不需要显示这些差异。阅读difflib's documentation,“默认[charjunk
]是模块级函数IS_CHARACTER_JUNK()
,它会过滤掉空格字符”。完美,除了我看不到它有效,或者有很大的不同(< - pun!)。
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')
将多个空白字符替换为单个空格字符来支持这一限制。