Domanda

Sono stato con la libreria Python difflib per trovare dove 2 documenti differiscono. Il Differ () confrontare () il metodo fa questo, ma è molto lento -. Atleast 100x più lento per i grandi documenti HTML rispetto al comando diff .

Come posso efficientemente determinare dove 2 documenti differiscono in Python? (Idealmente Sono dopo le posizioni piuttosto il testo vero e proprio, che è quello che SequenceMatcher (). Get_opcodes () restituisce.)

È stato utile?

Soluzione

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
scroll top