Tengo un problema para comparar dos archivos. Básicamente, lo que quiero hacer es un diff UNIX entre dos archivos, por ejemplo:Generar una diferencia "difusa" de dos archivos en Python, con una comparación aproximada de flotantes
$ diff -u-archivo de la izquierda a la derecha en archivos
Sin embargo mis dos archivos contienen los flotadores; y debido a que estos archivos fueron generados en arquitecturas distintas (pero computando las mismas cosas), los valores flotantes no son exactamente los mismos (pueden diferir, digamos, 1e-10). Pero lo que busco al "diferir" los archivos es encontrar lo que considero diferencias significativas (por ejemplo, la diferencia es más de 1e-4); ¡Mientras utilizo el comando diff de UNIX, casi todas mis líneas que contienen los valores flotantes son diferentes! Ese es mi problema: ¿cómo puedo obtener un diff resultante como 'diff -u', pero con menos restricciones con respecto a la comparación de carrozas?
Pensé que escribiría una secuencia de comandos de Python para hacer eso, y descubrí el módulo difflib que proporciona una comparación tipo diff. Pero la documentación que encontré explica cómo usarla tal como está (a través de un único método) y explica los objetos internos, pero no puedo encontrar nada sobre cómo personalizar un objeto difflib para satisfacer mis necesidades (como reescribir solo el método de comparación o tal) ... Supongo que una solución podría ser recuperar la diferencia unificada y analizarla 'manualmente' para eliminar mis 'falsas' diferencias, por esto no es elegante; Preferiría usar el marco ya existente.
Entonces, ¿alguien sabe cómo personalizar esta lib para que pueda hacer lo que busco? O al menos apúntame en la dirección correcta ... Si no está en Python, ¿quizás un script de shell podría funcionar?
¡Cualquier ayuda sería muy apreciada! ¡Gracias de antemano por sus respuestas!
Tal vez también les gusta: [módulos Buena Python para la comparación de cadenas difusa ?] (http://stackoverflow.com/questions/682367/good-python-modules-for-fuzzy-string-comparison) – miku
una alternativa más simple sería preprocesar archivos y formato flotantes correctamente a la precisión deseada –
¿Desea publicar un par de líneas correspondientes de los archivos de entrada de muestra? – smci