Python 观察文本中的变化?

Python 观察文本中的变化?,python,difflib,Python,Difflib,我有以下问题。 我更改了一篇在线文章的某些部分。 之后,其他人开始编辑这篇在线文章 现在,我正在尝试用python编写一段代码,以确定在我之后的人是否对我更改的部分进行了更改(以及更改的程度,以添加/删除的字符衡量) 对于expample: 案文是: 你好,沃尔德!今天发生了什么事?再见 我将文本改为: 你好,沃尔德!今天发生了什么事?今天我写了一个考试。再见 跟在我后面的人编辑: 你好,沃尔德!今天发生了什么事?今天我写了一个数学考试。再见 现在,代码应该确定,她更改了“n math”,并告诉

我有以下问题。 我更改了一篇在线文章的某些部分。
之后,其他人开始编辑这篇在线文章

现在,我正在尝试用python编写一段代码,以确定在我之后的人是否对我更改的部分进行了更改(以及更改的程度,以添加/删除的字符衡量)

对于expample: 案文是: 你好,沃尔德!今天发生了什么事?再见 我将文本改为: 你好,沃尔德!今天发生了什么事?今天我写了一个考试。再见 跟在我后面的人编辑: 你好,沃尔德!今天发生了什么事?今天我写了一个数学考试。再见

现在,代码应该确定,她更改了“n math”,并告诉我她更改了多少编辑百分比。在这种情况下: 大约20%

我开始使用“difflib”,但现在我发现代码毫无意义。 我的代码执行了以下操作: 使用difflib,我计算出了我更改的文本中的位置。 @@-1,4+1,4@@@br> 后来,我检查了线路,后面的那个人也用同样的方式换了。 @@ -1,6 +1,6 @@ . 在此之后,我比较了两行是否相同(+value equal-value)。但现在,我发现,这是行不通的。如果我后面的人在我换角色的时候开始编辑


有人知道怎么做吗

diff match补丁库(模块diff_match_补丁)产生更清晰的输出,更易于理解:

摘自官方文件:

diff_main("Good dog", "Bad dog") => [(-1, "Goo"), (1, "Ba"), (0, "d dog")]
使用实际代码:

from diff_match_patch import diff_match_patch
D = diff_match_patch()
D.diff_main("Good dog", "Bad dog")
“-1”是一个删除项

“1”是一个加法

“0”表示没有更改


请参阅:

我尝试使用diff_main。但是出现了错误,'module'对象没有属性'diff_main'。谢谢,正确处理了这个问题。我对变化有更好的看法。然后我可以确定我改变了什么,以及我之后的人改变了什么。但我怎么知道我之后的那个人是否改变了我以前改变过的东西?