El día 29 de julio de 2011 18:14, alito Z <alit...@gmail.com> escribió: > > Hola lasizoillo: > Trataré de responder tus preguntas. > Si, el fichero de salida debe tener el mismo número de campos haya o no > unión.
En una parte del programa tienes que tener una forma de generar registros del archivo2 vacios. > Los archivos no están separados por tabulados, en realidad es por número de > columna. Esto implica varias cosas: * Para generar un registro vacio se puede hacer con: " " * TAM_REG_2, donde TAM_REG_2 sería el tamaño del registro 2. Se puede cambiar " " por "\xff" o el valor que tengan los campos vacios. * Para sacar el identificador de los ficheros para comparar puedes sacarlo mediante linea[0:TAM_FIELD1], donde TAM_FIELD1 es el tamaño del campo 1 (el identificador). > Los ficheros si están ordenados. Eso quiere decir que si en el fichero 1 tienes el registro id 1, y en el fichero 2 el registro id 3, puedes asumir el registro del primer fichero le tienes que concatenar los campos vacios. Y lo mismo si hubiera posteriormente un registro con id 2 en el fichero 1. Si haces open("fichero1.txt") eso que obtienes es ya un iterador. Por lo cual puedes recorrerlos explicitamente con la función next del fichero abierto. Cuando no queden más lineas devolvera una excepción de tipo StopIteration. > Y si, siempre va a haber un registro en archivo 1 cuando exista un archivo > 2. Saber esto simplifica el programa. Puedes iterar el fichero 2 y recordar el próximo id de registro con valores. Luego iterar el fichero uno mientras el identificador sea menor y rellenando los campos del fichero 2 a vacio. Rellenar con los datos del fichero2 cuando los identificadores sean iguales y volver a iterar sobre el fichero 2. Con eso generarar un procesado óptimo para tu caso concreto. Saludos: Javi _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/