问题标签 [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.
python - 使用 difflib.HtmlDiff 类 - 显示单个字符
我正在使用difflib.HtmlDiff
该类,使用两组文本(来自网站的 HTML)调用该函数,但是当它制作表格时
然而,这似乎只是逐个字符比较(每个表行 1 个字符),我最终得到了一个 4.3MB txt 文件,用于两组只有 100k 的 html。
doc文件说,
然而,情况似乎并非如此。
有什么建议么?
python - High performance fuzzy string comparison in Python, use Levenshtein or difflib
I am doing clinical message normalization (spell check) in which I check each given word against 900,000 word medical dictionary. I am more concern about the time complexity/performance.
I want to do fuzzy string comparison, but I'm not sure which library to use.
Option 1:
Option 2:
In this example both give the same answer. Do you think both perform alike in this case?
python - 带有正则表达式的 Python difflib
我可以在 difflib 中使用正则表达式吗?
具体来说,我想做:
实际是:
黄金是:
python - Python 的 HtmlDiff.make_table() 的最坏情况行为
我正在使用 Python 2.7 的difflib.HtmlDiff.make_table()
函数为内部测试用例运行程序生成预期文件和实际文件之间的差异。它们最终形成 HTML 测试报告。
到目前为止,这工作得很好——直到我添加了一个带有更大文件(~400 KiB)的测试用例,有很多差异,通常不包含换行符。几乎我所有的测试用例都在不到 2 秒的时间内执行,一些更复杂的测试用例甚至高达 4 秒。这个新的在通过时同样快,但需要 13 分钟(!)才能失败。所有这些时间都花在生成报告上。我希望你能看到这是一个问题。
试图证明这一点(我知道可能不是最好的方法):
结果:
difflib.ndiff()
(make_table()
据我了解,内部使用)似乎没有这个问题:
给我这个:
这看起来很合理,即它是成比例的。四倍的大小需要四倍的时间。
不知道从这里去哪里。我猜当存在差异时,HTML 生成器会进行大量回溯(尽管您会认为 ndiff() 已经处理了该问题)。我可以告诉它提前中止,放弃并将整个部分标记为“不同”吗?
我知道有很多不同的算法可以生成差异。在这种情况下,我不需要它进行非常深入的分析并尝试在任何地方重新同步。我只需要它大致告诉我文件上的哪个位置不同,然后在合理的时间范围内终止。
或者,是否有其他生成 HTML 的 Python 差异库没有这种最坏情况的问题?
python - Python difflib gnu 补丁兼容性
可以使用与 GNU 补丁兼容的 python 模块 difflib 创建补丁吗?我尝试使用 Unified_diff 和 context_diff,还尝试将 lineterm 指定为“\n”,但我仍然收到此错误:
我使用 file.writelines(diff) 将补丁写入文件(一段代码http://pastebin.com/3HAWfwVf)
文件 test.txt:
文件 test2.txt:
并生成补丁:
谢谢你的帮助。
python - 如何在 difflibs html 输出中每行突出显示两个以上的字符
我difflib.HtmlDiff
用来比较两个文件。我希望在输出的 html 中突出显示差异。
当一行中最多有两个不同的字符时,这已经有效:
但是当一行上有更多不同的字符时,在输出中整行被标记为红色(在左侧)或绿色(在表格的右侧):
这种行为是可配置的吗?那么我可以设置该行被标记为删除/添加的不同字符的数量吗?
编辑:
例子:
给我这个输出:
第 2 行是我想要的输出。它突出了黄色的差异。第 3 行对我来说很奇怪,因为它没有检测到一个字符的变化,而是将其显示为删除/添加。第 4 行与第 3 行相同,但标记了整行。
python - difflib 根据序列的顺序返回不同的比率
有谁知道为什么这两个返回不同的比率。
python - 在 python 中,生成 HTML 突出显示两个简单字符串的差异
我需要用 python 突出显示两个简单字符串之间的差异,将不同的子字符串包含在 HTML 跨度属性中。所以我正在寻找一种简单的方法来实现以下示例所示的功能:
hightlight_diff('Hello world','HeXXo world','red')
...它应该返回字符串:
'He<span style="color:red">XX</span>o world'
我已经用谷歌搜索并看到了提到的 difflib,但它应该已经过时了,而且我还没有找到任何好的简单演示。
python - 使 difflib 的 SequenceMatcher 忽略“垃圾”字符
我有很多字符串要匹配相似度(每个字符串平均为 30 个字符)。我发现difflib's
SequenceMatcher
这项任务非常适合,因为它很简单并且结果很好。hellboy
但如果我比较hell-boy
喜欢这个
我希望这样的话能得到 100% 的匹配,即ratio of 1.0
. 我知道上面函数中指定的垃圾字符不用于比较,而是用于查找最长的连续匹配子序列。有什么方法可以SequenceMatcher
忽略一些“垃圾”字符以进行比较?
python - How does the python difflib.get_close_matches() function work?
The following are two arrays:
output:
shouldnt '198.124.252.102'
be the closest match for '198.124.252.101'
?
I looked at the documentation where they have specified about some floating type weights but no information on algorithm use.
I am in need to find if the absolute difference between the last two octet is 1 (provided the first three octets are same).
So I am finding the closest string first and then checking that closest string for the above condition.
Is there any other function or way to achieve this? Also how does get_close_matches()
behave?
ipaddr
doesnt seem to have such a manipulation for ips.