tutorial todos programas para notebook impacientes español comandos blog python unix tkinter difflib sdiff

todos - ¿Cómo usar el difflib de Python para producir una comparación lado a lado de dos archivos similares al comando sdiff de Unix?



python para impacientes tkinter (1)

Estoy usando Python 2.6 y quiero crear una GUI simple con dos paneles de texto uno al lado del otro comparando dos archivos de texto (archivo1.txt y archivo2.txt).

Estoy usando difflib pero no está claro cómo producir un resultado similar al comando sdiff Unix.

Para reproducir una comparación lado a lado, necesito difflib para devolver dos variables, por ejemplo, file1_diff y file2_diff .

También he considerado usar directamente la salida sdiff y analizarla para separar los paneles, pero resultó no ser tan fácil como parece ... ¿Alguna pista?


Intenté hacer diff de archivos con difflib.context_diff :

diff = difflib.context_diff(fromlines, tolines, fromfile=''file1.txt'', tofile=''file2.txt'') sys.stdout.writelines(diff)

En este caso, su salida será algo como esto:

*** file1.txt --- file2.txt *************** *** 1,6 **** ! aasdf qwer 123 ! poiu ! xzcv34 xzcv --- 1,6 ---- ! asdf qwer + mnbv 123 ! cvnn xzcv

En este caso, podrá separar fácilmente cada archivo diff, pero no estoy seguro si quedará satisfecho con el resultado de context_diff. No has mencionado de qué manera estás usando el difflib.