Re: [Python-es] Añadir el texto de un archivo a otro archivo
Abre los archivos con csv, http://docs.python.org/library/csv.html cada fila te la carga en una lista, la manipulas a tu antojo, y vuelves a usar csv para crear el fichero. El 28/07/2011, a las 21:46, Alex Z escribió: Hola! Quizás mi problema es bastante básico, pero he estado buscando la forma de como añadir la información de todo un archivo a otro archivo. Les explico a detalle. Tengo dos archivos, ojo los dos archivos contienen solo columnas. Entonces lo que quiero es que mi archivo_1.txt se le vayan añadiendo las columnas del archivo_2.txt. archivo_1.txt: 1 0.768590.838970.49883 2 0.428580.685110.19174 3 0.512670.670780.20065 4 0.350560.491900.18188 5 0.335390.405210.13157 6 0.231850.350580.05497 archivo_2.txt: 1 27.05 3 16.61 6 16.51 Como se podran dar cuenta, las columnas no coinciden y ese es otro detalle. Necesito que la fila 1 se una a la fila 1 de la columna del segundo archivo, y así sucesivamente. Detalle anexo, siempre debe coincidir la numeración de la primera columna, quedando un archivo final parecido al siguiente ejemplo: 1 0.768590.838970.49883 1 27.05 2 0.428580.685110.19174 3 0.512670.670780.20065 3 16.61 4 0.350560.491900.18188 5 0.335390.405210.13157 6 0.231850.350580.05497 6 16.51 Alguien me podría dar alguna sugerencia? Gracias. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Añadir el texto de un archivo a otro archivo
yo lo haría con fichero readlines ... lees el archivo que quieres agregar for linea in lineas ... y creas un diccionario con clave la primera columna de la linea linea.split(' ')[0] como dato el segundo linea.split(' ')[1], y luego vas leyendo el grande y cuando coincide primer numero con el de la linea le añades el dato que obtuviste del primero ... asi hasta que terminas ... grabas y ya. El 29 de julio de 2011 08:45, Juan José Denis Corrales jjde...@gmail.comescribió: Abre los archivos con csv, http://docs.python.org/library/csv.html cada fila te la carga en una lista, la manipulas a tu antojo, y vuelves a usar csv para crear el fichero. El 28/07/2011, a las 21:46, Alex Z escribió: Hola! Quizás mi problema es bastante básico, pero he estado buscando la forma de como añadir la información de todo un archivo a otro archivo. Les explico a detalle. Tengo dos archivos, ojo los dos archivos contienen solo columnas. Entonces lo que quiero es que mi archivo_1.txt se le vayan añadiendo las columnas del archivo_2.txt. archivo_1.txt: 1 0.768590.838970.49883 2 0.428580.685110.19174 3 0.512670.670780.20065 4 0.350560.491900.18188 5 0.335390.405210.13157 6 0.231850.350580.05497 archivo_2.txt: 1 27.05 3 16.61 6 16.51 Como se podran dar cuenta, las columnas no coinciden y ese es otro detalle. Necesito que la fila 1 se una a la fila 1 de la columna del segundo archivo, y así sucesivamente. Detalle anexo, siempre debe coincidir la numeración de la primera columna, quedando un archivo final parecido al siguiente ejemplo: 1 0.768590.838970.49883 1 27.05 2 0.428580.685110.19174 3 0.512670.670780.20065 3 16.61 4 0.350560.491900.18188 5 0.335390.405210.13157 6 0.231850.350580.05497 6 16.51 Alguien me podría dar alguna sugerencia? Gracias. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- *monoBOT* Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Añadir el texto de un archivo a otro archivo
ups era en csv ... si los tratas como ficheros de texto normales te servirá mi solución si quieres una solución usando librería de csv no tengo ni idea. El 29 de julio de 2011 10:12, monoBOT monobot.s...@gmail.com escribió: yo lo haría con fichero readlines ... lees el archivo que quieres agregar for linea in lineas ... y creas un diccionario con clave la primera columna de la linea linea.split(' ')[0] como dato el segundo linea.split(' ')[1], y luego vas leyendo el grande y cuando coincide primer numero con el de la linea le añades el dato que obtuviste del primero ... asi hasta que terminas ... grabas y ya. El 29 de julio de 2011 08:45, Juan José Denis Corrales jjde...@gmail.comescribió: Abre los archivos con csv, http://docs.python.org/library/csv.html cada fila te la carga en una lista, la manipulas a tu antojo, y vuelves a usar csv para crear el fichero. El 28/07/2011, a las 21:46, Alex Z escribió: Hola! Quizás mi problema es bastante básico, pero he estado buscando la forma de como añadir la información de todo un archivo a otro archivo. Les explico a detalle. Tengo dos archivos, ojo los dos archivos contienen solo columnas. Entonces lo que quiero es que mi archivo_1.txt se le vayan añadiendo las columnas del archivo_2.txt. archivo_1.txt: 1 0.768590.838970.49883 2 0.428580.685110.19174 3 0.512670.670780.20065 4 0.350560.491900.18188 5 0.335390.405210.13157 6 0.231850.350580.05497 archivo_2.txt: 1 27.05 3 16.61 6 16.51 Como se podran dar cuenta, las columnas no coinciden y ese es otro detalle. Necesito que la fila 1 se una a la fila 1 de la columna del segundo archivo, y así sucesivamente. Detalle anexo, siempre debe coincidir la numeración de la primera columna, quedando un archivo final parecido al siguiente ejemplo: 1 0.768590.838970.49883 1 27.05 2 0.428580.685110.19174 3 0.512670.670780.20065 3 16.61 4 0.350560.491900.18188 5 0.335390.405210.13157 6 0.231850.350580.05497 6 16.51 Alguien me podría dar alguna sugerencia? Gracias. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- *monoBOT* Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es -- *monoBOT* Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Añadir el texto de un archivo a otro archivo
El día 28 de julio de 2011 21:46, Alex Z alit...@gmail.com escribió: Hola! Quizás mi problema es bastante básico, pero he estado buscando la forma de como añadir la información de todo un archivo a otro archivo. Les explico a detalle. Tengo dos archivos, ojo los dos archivos contienen solo columnas. Entonces lo que quiero es que mi archivo_1.txt se le vayan añadiendo las columnas del archivo_2.txt. archivo_1.txt: 1 0.76859 0.83897 0.49883 2 0.42858 0.68511 0.19174 3 0.51267 0.67078 0.20065 4 0.35056 0.49190 0.18188 5 0.33539 0.40521 0.13157 6 0.23185 0.35058 0.05497 archivo_2.txt: 1 27.05 3 16.61 6 16.51 Como se podran dar cuenta, las columnas no coinciden y ese es otro detalle. Necesito que la fila 1 se una a la fila 1 de la columna del segundo archivo, y así sucesivamente. Detalle anexo, siempre debe coincidir la numeración de la primera columna, quedando un archivo final parecido al siguiente ejemplo: 1 0.76859 0.83897 0.49883 1 27.05 2 0.42858 0.68511 0.19174 3 0.51267 0.67078 0.20065 3 16.61 4 0.35056 0.49190 0.18188 5 0.33539 0.40521 0.13157 6 0.23185 0.35058 0.05497 6 16.51 Alguien me podría dar alguna sugerencia? Si, especificar mejor el problema. La salidad debe ser algo como: 1\t0.76859\t0.83897\t0.49883\t1\t27.05 2\t0.42858\t0.68511\t0.19174 o como: 1\t0.76859\t0.83897\t0.49883\t1\t27.05 2\t0.42858\t0.68511\t0.19174\t\t O dicho de otra forma: El fichero de salida, ¿tiene que tener el mismo número de campos haya habido unión de los dos registros o no? Tampoco se sabe muy bien si estan separados por tabulados o por número de columna. ¿Estan ordenados los ficheros? Si estan ordenados se pueden ir recorriendo ambos simultaneamente y es mucho más simple y requiere menos memoria. ¿Cómo es el conjunto de datos de los identificadores de archivo1 y archivo2? ¿Va a haber siempre un registro en archivo1 cuando exita uno en archivo2? Dependiendo de ese tipo de pregruntas tendrás un código u otro. Si no sabes constestarlas te tendrás que poner en el peor de los casos. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Añadir el texto de un archivo a otro archivo
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. Los archivos no están separados por tabulados, en realidad es por número de columna. Los ficheros si están ordenados. Y si, siempre va a haber un registro en archivo 1 cuando exista un archivo 2. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Añadir el texto de un archivo a otro archivo
El día 29 de julio de 2011 18:08, alito Z alit...@gmail.com escribió: En realidad no se si lo quiero en csv, debido a que tengo miles de archivos que necesito hacer de esta forma y hacerlo de forma manual me es casi imposible. El otro problema es que el programa lo estoy escribiendo para un cluster y quiero que todo se haga de forma automática, pero desconozco si uno puedo instalar csv en un cluster y programarlo para que me salgan las cosas automáticas Supongo que por csv se referia al módulo de python para tratar los ficheros con el formato del mismo nombre o variantes como los tsv: http://docs.python.org/library/csv.html#module-csv Pero viendo otro correo, en el que explicas mejor el formato de fichero, se ve que no te va a servir de nada. 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/
Re: [Python-es] Añadir el texto de un archivo a otro archivo
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/
Re: [Python-es] Añadir el texto de un archivo a otro archivo
Hola a todos: Gracias a todos por sus valiosos comentarios. Terminé haciendo un pequeño programa en python utilizando la sugerencia de Antonio ($ join -a1 -11 -21 archivo1.txt archivo2.txt), el cual se me hizo muy práctico y muy sencillo y nada rebuscado. Para el script de python solo tuve que utilizar el modulo os. De ahi en fuera todo lo demás es como si estuvieras en una shell. Saludos! ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
[Python-es] Añadir el texto de un archivo a otro archivo
Hola! Quizás mi problema es bastante básico, pero he estado buscando la forma de como añadir la información de todo un archivo a otro archivo. Les explico a detalle. Tengo dos archivos, ojo los dos archivos contienen solo columnas. Entonces lo que quiero es que mi archivo_1.txt se le vayan añadiendo las columnas del archivo_2.txt. archivo_1.txt: 1 0.768590.838970.49883 2 0.428580.685110.19174 3 0.512670.670780.20065 4 0.350560.491900.18188 5 0.335390.405210.13157 6 0.231850.350580.05497 archivo_2.txt: 1 27.05 3 16.61 6 16.51 Como se podran dar cuenta, las columnas no coinciden y ese es otro detalle. Necesito que la fila 1 se una a la fila 1 de la columna del segundo archivo, y así sucesivamente. Detalle anexo, siempre debe coincidir la numeración de la primera columna, quedando un archivo final parecido al siguiente ejemplo: 1 0.768590.838970.49883 1 27.05 2 0.428580.685110.19174 3 0.512670.670780.20065 3 16.61 4 0.350560.491900.18188 5 0.335390.405210.13157 6 0.231850.350580.05497 6 16.51 Alguien me podría dar alguna sugerencia? Gracias. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Añadir el texto de un archivo a otro archivo
Hola! Según recuerdo, la reescritura como la que describes es hecha regularmente con un archivo o buffer temporal, ya que el sistema operativo no lo permite sin reescribir, y pues utilizando tu primera columna como clave vas comparando y añadiendo a la línea que vas leyendo si hay coincidencias. Saludos El 28/07/11 21:46, Alex Z escribió: Hola! Quizás mi problema es bastante básico, pero he estado buscando la forma de como añadir la información de todo un archivo a otro archivo. Les explico a detalle. Tengo dos archivos, ojo los dos archivos contienen solo columnas. Entonces lo que quiero es que mi archivo_1.txt se le vayan añadiendo las columnas del archivo_2.txt. archivo_1.txt: 1 0.768590.838970.49883 2 0.428580.685110.19174 3 0.512670.670780.20065 4 0.350560.491900.18188 5 0.335390.405210.13157 6 0.231850.350580.05497 archivo_2.txt: 1 27.05 3 16.61 6 16.51 Como se podran dar cuenta, las columnas no coinciden y ese es otro detalle. Necesito que la fila 1 se una a la fila 1 de la columna del segundo archivo, y así sucesivamente. Detalle anexo, siempre debe coincidir la numeración de la primera columna, quedando un archivo final parecido al siguiente ejemplo: 1 0.768590.838970.49883 1 27.05 2 0.428580.685110.19174 3 0.512670.670780.20065 3 16.61 4 0.350560.491900.18188 5 0.335390.405210.13157 6 0.231850.350580.05497 6 16.51 Alguien me podría dar alguna sugerencia? Gracias. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- 'cddooc'. .cxko;,,,;lxx:. ;xl' cOx' lx.ck' .k.'' ,O' .x.': .c, x; .:;'.',' 'ko .cc. .:;. ;;.. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Añadir el texto de un archivo a otro archivo
Hola: Usa awk. Saludos ... Mario Rodas ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Añadir el texto de un archivo a otro archivo
Hola Alex, Si usas UNIX o Cygwin: $ join -a1 -11 -21 archivo1.txt archivo2.txt 1 0.76859 0.83897 0.49883 27.05 2 0.42858 0.68511 0.19174 3 0.51267 0.67078 0.20065 16.61 4 0.35056 0.49190 0.18188 5 0.33539 0.40521 0.13157 6 0.23185 0.35058 0.05497 16.51 Saludos, Antonio 2011/7/28 Alex Z alit...@gmail.com: Hola! Quizás mi problema es bastante básico, pero he estado buscando la forma de como añadir la información de todo un archivo a otro archivo. Les explico a detalle. Tengo dos archivos, ojo los dos archivos contienen solo columnas. Entonces lo que quiero es que mi archivo_1.txt se le vayan añadiendo las columnas del archivo_2.txt. archivo_1.txt: 1 0.76859 0.83897 0.49883 2 0.42858 0.68511 0.19174 3 0.51267 0.67078 0.20065 4 0.35056 0.49190 0.18188 5 0.33539 0.40521 0.13157 6 0.23185 0.35058 0.05497 archivo_2.txt: 1 27.05 3 16.61 6 16.51 Como se podran dar cuenta, las columnas no coinciden y ese es otro detalle. Necesito que la fila 1 se una a la fila 1 de la columna del segundo archivo, y así sucesivamente. Detalle anexo, siempre debe coincidir la numeración de la primera columna, quedando un archivo final parecido al siguiente ejemplo: 1 0.76859 0.83897 0.49883 1 27.05 2 0.42858 0.68511 0.19174 3 0.51267 0.67078 0.20065 3 16.61 4 0.35056 0.49190 0.18188 5 0.33539 0.40521 0.13157 6 0.23185 0.35058 0.05497 6 16.51 Alguien me podría dar alguna sugerencia? Gracias. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/