我已经使用的蟒蛇 difflib 库中找到其中2文件的不同而不同。该有所不同().比较()方法这样做,但是它是 非常 慢--至少100倍的速度较慢,大HTML文档相比 差异 命令。

我如何可以有效地确定其中2的文件有不同的蟒蛇?(理想的是我后的职位而实际的文本,这是什么SequenceMatcher().get_opcodes()返回。)

有帮助吗?

解决方案

a = open("file1.txt").readlines()
b = open("file2.txt").readlines()
count = 0
pos = 0

while 1:
    count += 1
    try:
        al = a.pop(0)
        bl = b.pop(0)
        if al != bl:
            print "files differ on line %d, byte %d" % (count,pos)
        pos += len(al)
    except IndexError:
        break

其他提示

有一个谷歌 比较图书馆 对于纯文本与蟒蛇API,这应适用于html文档你想要的工作。我不知道,如果它是适合你的特别是使用情况特别感兴趣的位置差异,但它值得一看。

一个丑恶和愚蠢的解决方案:如果 diff 速度更快,使用;通过呼叫蟒蛇通过 subprocess, ,分析指令输出为你需要的信息。这不会那么快,仅仅作为 diff, 但是,也许比快 difflib.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top