问题标签 [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 投票
4 回答
2594 浏览

python - Difflib.SequenceMatcher isjunk 可选参数查询:如何忽略空格、制表符、空行?

我正在尝试使用 Difflib.SequenceMatcher 来计算两个文件之间的相似性。这两个文件几乎相同,除了一个包含一些额外的空格、空行而另一个不包含。我正在尝试使用

以此目的。

所以,问题是如何为这个 isjunk 方法编写 lambda 表达式,以便 SequenceMatcher 方法将忽略所有空格、空行等。我尝试使用参数 lambda x: x==" ",但结果不是一样棒。对于两个非常相似的文本,该比率非常低。这是非常反直觉的。

出于测试目的,以下是您可以在测试中使用的两个字符串:

是什么促使 jwovu 做好你的工作?好的,这是一个试图赢得价值 100 美元的软件开发书籍的条目,尽管我不读

编程书籍。为了赢得奖品,你必须写一个条目,以及
是什么促使 fggmum 做好你的工作。因此这篇文章。第一个动机

钱。我知道,这听起来对许多人来说并不是一个很好的灵感,并且说金钱是激励因素之一可能会让我失去机会。

好像金钱是编程世界的禁忌。我知道有些人不能被金钱所激励。另一方面,Mme 生活在一个真实的世界中,

有房贷要付,我自己要养活,还要付账单。所以我真的不能把钱排除在我的考虑之外。如果我能得到一大笔钱

干得好,那肯定会鼓舞我的士气。我不在乎我是在使用旧工作站,还是被迫与其他人共用房间或隔间

人,或者不得不忍受一个烦人的老板,或者其他什么。事实上,在一天结束时我会带着一大笔钱走人本身就足够了

让我克服所有的障碍,忍受所有的痛苦和伤害自尊心,忍受慢速的电脑,甚至忍受

这是另一个字符串

是什么促使你做好工作?好的,这是一个试图赢得价值 100 美元的软件开发书籍的条目,尽管我不阅读编程书籍。为了赢得奖品,你必须写一个条目并描述是什么促使你做好工作。因此这篇文章。

第一个动机,金钱。我知道,这听起来对许多人来说并不是一个很好的灵感,并且说金钱是激励因素之一可能会让我失去机会。好像金钱是编程世界的禁忌。我知道有些人不能被金钱所激励。向他们致敬。另一方面,我生活在一个现实世界中,要支付房屋抵押贷款,要养活自己,要支付账单。所以我真的不能把钱排除在我的考虑之外。

如果我能因为做好工作而得到一大笔钱,那肯定会鼓舞我的士气。我不在乎我是在使用旧的工作站,还是被迫与其他人共用房间或隔间,或者不得不忍受烦人的老板,或者其他什么。一天结束时,我会带着一大笔钱走人,这一事实足以让我克服所有的障碍,忍受所有的痛苦和伤害自尊心,容忍一台运行缓慢的电脑,甚至忍受

我运行了上面的命令,并将 isjunk 设置为 lambda x:x==" ",比率只有 0.36。

0 投票
5 回答
82148 浏览

python - 在 Python 中使用 difflib 比较两个 .txt 文件

我正在尝试比较两个文本文件并输出比较文件中不匹配但遇到困难的第一个字符串,因为我对 python 很陌生。谁能给我一个使用这个模块的示例方法。

当我尝试类似的事情时:

我收到一条错误消息,提示“文件”类型的对象没有 len。

0 投票
2 回答
1808 浏览

python - Python SequenceMatcher Overhead - 100% CPU 利用率和非常慢的处理

我正在使用 difflib 比较两个目录中的文件(连续几年的版本)。首先,我使用 filecmp 来查找已更改的文件,然后迭代地使用 difflib.SequenceMatcher 来比较它们并生成一个 html 差异,如此所述。

但是,我发现程序运行时间太长,并且 python 正在使用 100% CPU。在时间分析中,我发现seqm.get_opcodes()调用一直在占用。

任何见解将不胜感激。谢谢 !

代码:

0 投票
3 回答
914 浏览

python - 确定文档与 Python 的不同之处

我一直在使用 Python difflib库来查找 2 个文档的不同之处。Differ().compare() 方法执行此操作,但它非常慢 - 与diff命令相比,大型 HTML 文档至少慢 100 倍。

如何有效地确定 2 个文档在 Python 中的不同之处?(理想情况下,我关注的是位置而不是实际的文本,这就是 SequenceMatcher().get_opcodes() 返回的内容。)

0 投票
6 回答
19883 浏览

python - 在 python 中生成和应用差异

python中是否有一种“开箱即用”的方式来生成两个文本之间的差异列表,然后将此差异应用于一个文件以获得另一个文件?

我想保留文本的修订历史,但如果只有一个编辑行,我不想为每个修订保存整个文本。我查看了difflib,但看不到如何生成仅包含已编辑行的列表,这些行仍可用于修改一个文本以获取另一个文本。

0 投票
3 回答
12826 浏览

python - Python Difflib Deltas 和比较 Ndiff

我想做一些我相信变更控制系统所做的事情,它们比较两个文件,并在每次文件更改时保存一个小差异。我一直在阅读这个页面:http ://docs.python.org/library/difflib.html ,它显然没有陷入我的脑海。

我试图在下面显示的一个有点简单的程序中重新创建它,但我似乎缺少的是 Delta 包含的内容至少与原始文件一样多,甚至更多。

难道不能只做纯粹的改变吗?我问的原因很明显 - 节省磁盘空间。
我可以每次只保存整个代码块,但最好保存一次当前代码,然后保存更改的小差异。

我还在试图弄清楚为什么许多 difflib 函数返回一个生成器而不是一个列表,那里有什么优势?

difflib 对我有用吗 - 还是我需要找到一个更专业、功能更多的软件包?

谢谢!

更新:

----- 显示上下文 -----




* 5,9 **

  • 打印“j=”+j

    打印“XYZ”

--- 5,9 ----

  • 打印“结束”

另一个更新:

在 Panvalet an Librarian 的旧时代,大型机的源代码管理工具,您可以创建这样的变更集:

这只是意味着在第 9 行之后添加一行(或多行)。然后是 ++REPLACE 或 ++UPDATE 之类的单词。 http://www4.hawaii.gov/dags/icsd/ppmo/Stds_Web_Pages/pdf/it110401.pdf

0 投票
2 回答
55406 浏览

python - 如何使用 SequenceMatcher 查找两个字符串之间的相似性?

我使用了上面的代码,但得到的输出是 0.0。我怎样才能得到一个有效的答案?

0 投票
2 回答
1410 浏览

python - difflib可以用来做抄袭检测程序吗?

我正在努力解决这个问题...

Python中的difflib.*库可以用来制作某种抄袭检测程序吗?如果有怎么办?

也许任何人都可以帮助我弄清楚这个问题。

0 投票
1 回答
2430 浏览

python - 通过difflib modul比较python中的列表

我正在尝试 difflib 库。我有两个列表: L_1 和 L_2 包含字符串。我想知道,如果这些序列相似(顺序并不重要)。

应该可以。但

应该不行。

我想出了迭代第一个列表 L_1 并通过该方法匹配 L_1 的每个元素的想法

针对第二个列表 L_2。如果有一个比率更大的匹配,那么假设 0.7 从 L_2 中删除它并继续。但我怀疑这是一个好计划。有更好的吗?

0 投票
1 回答
574 浏览

python - 使用 python 在 XML 上与 unicode 进行差异

我正在尝试创建一个可以可视化两个 XML 之间差异的 Web 工具。difflib在创建具有差异的 html 时工作得很好,但随后一些 unicode 文本出现在 XML 中,并且生成的 html 现在包含 html 编码的字母。

有没有其他方法可以解决这个问题?