| Author: Eduardo Enriquez

C贸mo comparar si dos archivos son iguales con Python. M贸dulo filecmp y lectura byte-a-byte

Python 2 y 3 traen un m贸dulo espec铆fico para la comparaci贸n de archivos: filecomp

>>> import filecmp
>>> filecmp.cmp('archivo.txt', 'otro.txt')
False

>>> filecmp.cmp('archivo.txt', 'mismo.txt')
True

El m茅todo empleado es la de la comparaci贸n de bytes. De hecho la implementacion de filecmp.cmp utiliza m谩s alla de otras cosas esa comparaci贸n:

def _do_cmp(f1, f2):
    bufsize = BUFSIZE  # BUFSIZE = 8*1024 
    with open(f1, 'rb') as fp1, open(f2, 'rb') as fp2:
        while True:
            b1 = fp1.read(bufsize)
            b2 = fp2.read(bufsize)
            if b1 != b2:
                return False
            if not b1:
                return True

Otro m茅todo posible para la comparaci贸n es el de hashear ambos archivos y comparar, pero esto deber铆a ser un poco m谩s lento que simplemente compara byte a byte.

Related Posts