sequencematcher python diff unified-diff

python - sequencematcher - difflib install



¿Cómo imprimir la comparación de dos cadenas multilínea en formato diff unificado? (2)

¿Has difflib un vistazo al módulo de pitón difflib ? Mira que este example

¿Conoces alguna biblioteca que te ayude a hacer eso?

Escribiría una función que imprima las diferencias entre dos cadenas multilínea en el formato diff unificado. Algo como eso:

def print_differences(string1, string2): """ Prints the comparison of string1 to string2 as unified diff format. """ ???

Un ejemplo de uso es el siguiente:

string1=""" Usage: trash-empty [days] Purge trashed files. Options: --version show program''s version number and exit -h, --help show this help message and exit """ string2=""" Usage: trash-empty [days] Empty the trash can. Options: --version show program''s version number and exit -h, --help show this help message and exit Report bugs to http://code.google.com/p/trash-cli/issues """ print_differences(string1, string2)

Esto debería imprimir algo así:

--- string1 +++ string2 @@ -1,6 +1,6 @@ Usage: trash-empty [days] -Purge trashed files. +Empty the trash can. Options: --version show program''s version number and exit


Así es como lo resolví:

def _unidiff_output(expected, actual): """ Helper function. Returns a string containing the unified diff of two multiline strings. """ import difflib expected=expected.splitlines(1) actual=actual.splitlines(1) diff=difflib.unified_diff(expected, actual) return ''''.join(diff)