问题标签 [difflib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2417 浏览

python - Python difflib.Differ 与上下文差异

如何获得上下文差异(仅是有差异的行而不是所有行)以及使用 difflib.Differ() 比较行中的字符

例子

更新: 我已经在这里回答了:python difflib character diff with unifed contextual format

0 投票
1 回答
1230 浏览

python - 具有统一上下文格式的python difflib字符差异

我需要以 unix 统一的 diff 风格显示每行的字符差异。有没有办法使用 difflib 做到这一点?

我可以分别使用 difflib.unified_diff 和 difflib.Differ() (ndiff) 分别获得“统一差异”和“每行字符差异”,但我该如何组合它们呢?

这就是我要找的:

0 投票
3 回答
4868 浏览

python - Python 的 difflib SequenceMatcher 加速

我正在使用 difflib SequenceMatcher(ratio() 方法)来定义文本文件之间的相似性。虽然 difflib 比较一小部分文本文件的速度相对较快,例如 10 个 70 kb 的文件平均相互比较(46 个比较)大约需要 80 秒。

这里的问题是我收集了 3000 个 txt 文件(平均 75 kb),对 SequenceMatcher 完成比较工作需要多少时间的原始估计是 80 天!

我尝试了“real_quick_ratio()”和“quick_ratio()”方法,但它们不符合我们的需要。

有什么方法可以加快比较过程?如果没有,有没有其他更快的方法来完成这样的任务?即使它不在 Python 中。

0 投票
1 回答
187 浏览

python - 在python中计算字符串差异

我正在尝试计算python中两个字符串之间不同的字符数。理想情况下,我想要一个函数,就像 C 中的 strdif 一样。我在 python 的 difflib 中看到 ndiff,但它返回一个 Differ 对象,而我想要一个简单的整数(例如:“10011”与“00110”返回 3)。我知道答案一定很简单,但我想不通,我宁愿使用库函数而不是自己写

0 投票
1 回答
2403 浏览

python - ImportError:没有名为 difflib_data 的模块

我正在使用 Windows 7 中的 python 3.4。尝试比较两个文本文件,我想使用 difflib 报告它们之间的差异。以下是代码 m 使用:

Traceback: from difflib_data import * ImportError: No module named 'difflib_data'

如何删除此错误....谢谢

0 投票
1 回答
354 浏览

python - 带有正则表达式的 Python difflib

我想将 stringA与 regex进行比较R

这时候我可以很容易地知道语法是否好,这要归功于re.matchand re.search。现在我想研究匹配不起作用时A和B之间的差异。

我的第一个案例很简单。我将正则表达式替换为([A-Za-z]+)(.+)了解问题是否仅在正则表达式组匹配中。在这种情况下,我可以很容易地提出这个问题,即字符串语法对于为名称定义的组是好的期望。

现在,在第 1 步和第 2 步失败的情况下,我想制作一个类似的差异,HTML diff但使用正则表达式来确定正则表达式失败的位置。

我研究difflib了该find_longest_match函数,但似乎该函数仅适用于每个字符的字符,而不适用于子字符串。

您是否有任何想法/建议来识别基于正则表达式比较的差异并可能计算测量相似性的比率?

0 投票
0 回答
41 浏览

python - 使用 difflib 恢复旧标签

我正在尝试从旧版本的文本(text1)中恢复一系列 xml 标签,并将它们嵌入到相同文本的最新版本(text2)中。

例如:


现在我已经设法使用 difflib 分别打印两个版本的代码:

这使:

我的问题是,如何将-字符串嵌入到+字符串中?

0 投票
2 回答
414 浏览

python - Django两个文件上传差异

我已经发布在https://stackoverflow.com/questions/26776003/how-to-use-htmldiff-in-django-to-show-difference-of-two-uploaded-files

但是,我想知道是否有一种简单的方法可以上传几个文件并提交,它会在下一页显示这两个文件之间的差异。我让它在上面的链接中工作,但它不适用于 4/ 5 MB 这样的大文件。

我迫切需要解决这个问题。谢谢你。

0 投票
2 回答
1003 浏览

python - Python程序比较两个文件以显示差异

我有以下代码来比较两个文件。如果我将它们指向大小为 4 或 5 MB 的文件,我希望该程序运行。当我这样做时,python 控制台中的提示光标只是闪烁,并且不显示任何输出。有一次,我跑了一夜,第二天早上它还在闪烁。我可以在此代码中更改什么?

0 投票
1 回答
84 浏览

python - 观察文本的变化?

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

现在,我正在尝试使用 python 编写代码,以识别我之后的人是否在我更改的部分中更改了某些内容(以及更改了多少,以添加/删除的字符为单位)。

例如:文本是:Hello Wolrd!今天发生了什么事?再见,我将文本更改为:Hello Wolrd!今天发生了什么事?今天我写了一个考试。Goodbye The Guy after me 编辑:Hello Wolrd!今天发生了什么事?今天我写了一个数学考试。再见

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

我开始使用“difflib”,但现在我发现代码没有意义。我的代码执行了以下操作:使用 difflib,我找出了我更改的文本中的位置。@@ -1,4 +1,4 @@
然后,我检查了我后面的人以同样的方式更改的线路。@@ -1,6 +1,6 @@ 。在此之后,我比较了行是否相同(+ 值等于 - 值)。但现在,我发现,这行不通。如果我之后的那个人开始在我更改部分的中间进行编辑。

有没有人知道,怎么做?