Sé que puedo usar cmp, diff, etc. para comparar dos archivos, pero lo que estoy buscando es una utilidad que me proporcione un porcentaje de diferencia entre dos archivos.

Si no existe tal utilidad, cualquier algoritmo funcionaría bien también. He leído sobre programación difusa, pero no la entiendo del todo.

16
Mohamed 26 ago. 2009 a las 17:34

3 respuestas

La mejor respuesta

Puede usar el método difflib.SequenceMatcher ratio

De la documentación:

Devuelve una medida de la similitud de las secuencias como flotante en el rango [0, 1].

Por ejemplo:

from difflib import SequenceMatcher
text1 = open(file1).read()
text2 = open(file2).read()
m = SequenceMatcher(None, text1, text2)
m.ratio()
33
Nadia Alramli 26 ago. 2009 a las 13:44

Beyond Compare tiene una muy buena exportación de estadísticas de diferencia de archivos a csv. Se informan las diferencias a nivel de línea, por lo que es bueno comparar archivos de código fuente.

1
Michal Milkowski 19 nov. 2015 a las 13:42

Parece que Linux tiene una utilidad llamada dwdiff que puede dar diferencias porcentuales usando el indicador "-s"

http://www.softpanorama.org/Utilities/diff_tools.shtml

3
brien 26 ago. 2009 a las 13:48