可以difflib的charjunk被用来忽略空格?(Can difflib's charj

2019-10-17 15:52发布

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

Answer 1:

我碰到了同样的问题,使用difflib.Differ()。

此链接解释了不同(),我想用ndiff问题(问题)是相似的。



文章来源: Can difflib's charjunk be used to ignore whitespace?