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.