能否用Python根据统一差异和原始文本恢复文本?

2 投票
1 回答
601 浏览
提问于 2025-04-16 16:31

我想做的是计算两段文本(原始文本和新文本)之间的差异,保存原始文本和这个差异,然后希望能用这些信息恢复出新文本。这样我就可以用最少的空间存储同一段文本的不同版本。

使用Python的difflib库,可以通过ndiff和restore来实现这个功能;不过ndiff生成的差异包含了新文本的所有内容,这和我的想法不太一致。

unified_diff提供了一种更紧凑的差异表示,只显示不同的部分,这样更符合我的需求,但我找不到用这个差异和原始文本来恢复新文本的方法。

我看过一些讨论,比如这个,里面提到仅用unified_diff生成的差异可能可以恢复任意一段文本,但我不太明白为什么不能用原始文本来恢复。

1 个回答

3

我找到了一个叫做 google-diff-match-patch 的工具,它正好能满足我的需求。

撰写回答