Re: [Python-es] Añadir el texto de un archivo a otro archivo

2011-07-29 Por tema Juan José Denis Corrales
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

2011-07-29 Por tema monoBOT
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

2011-07-29 Por tema monoBOT
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

2011-07-29 Por tema lasizoillo
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

2011-07-29 Por tema alito Z
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

2011-07-29 Por tema lasizoillo
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

2011-07-29 Por tema lasizoillo
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

2011-07-29 Por tema alito Z
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

2011-07-28 Por tema Alex Z
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

2011-07-28 Por tema Ray Bachas

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

2011-07-28 Por tema Mario Rodas
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

2011-07-28 Por tema Antonio Alvarado Hernández
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/