文字列の 2 つのリストの違いを比較したいと思います。私の目的では、空白はノイズであり、これらの違いを示す必要はありません。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')
.