[Python-es] Reemplazar en columnas

alito s alito81 en gmail.com
Vie Ene 6 21:28:27 CET 2012


Si, algo así. Lo había estado intentando con readlines y split, el problema
es que no se como hacerle para que cuando venga de mi otro archivo
reconozca la línea.
Has de cuenta que en mi archivo que quiero reemplazar la última columna,
con datos que provienen de otro archivo, lo que tienen en común entre ambos
archivos es la primera columna, que se encuentra numerada.
Por ejemplo, si tengo un dato en el segundo archivo en la línea 27, quiero
que en el primer archivo me reemplace la línea 27 por ese dato en la última
columna.
Detalle, el primer archivo esta númerado de corrido en la primer columna,
en el segundo se salta la numeración.
Gracias.

2012/1/6 Juan Luis Cano Rodríguez <juanlu001 en gmail.com>

> Hola:
>
> Supongo que estás intentando hacer algo parecido a esto:
>
> with open('data.txt', 'r+') as f:  # Se abre el fichero 'data.txt' en un
> context manager
>     nlines = []  # Aquí almacenaremos los datos tal y como quedarán
> después de modificarlos
>     lines = f.readlines()
>     for l in lines:
>         if condition:  # Esta condición será lo que tendrás que incluir
>             chunks = l.split()
>             chunks[-1] = new_value  # Se cambia el último registro por el
> valor que quieres
>             l = ' '.join(chunks)  # Se unen los trozos
>         nlines.append(l)  # Se incluye la línea, modificada o no, en nlines
>
> Y luego volver a escribir los datos de vuelta?
>
> 2012/1/6 alito s <alito81 en gmail.com>
>
>> Hola a tod en s!
>> Iniciando el año y a dar lata de nuevo.
>> Me gustaría saber si alguien sabe como reemplazar una columna por otra
>> columna.
>> Tengo un archivo como el siguiente:
>>
>> 10 E 0.39804 0.26261 0.19737 E 0.1731 E 0.2333 E 0.392380 0
>> 11 S 0.42363 0.25062 0.20260 S 0.1583 S 0.1878 S 0.401904 0
>> 12 P 0.42042 0.24929 0.19191 P 0.1048 P 0.1998 P 0.403052 0
>> 13 Y 0.40127 0.26243 0.16593 Y 0.1162 Y 0.1635 Y 0.405571 0
>> 14 V 0.40633 0.27085 0.14794 V 0.1554 V 0.1456 V 0.415171 0
>> 15 M 0.39771 0.27276 0.12858 M 0.2129 M 0.1921 M 0.424976 0
>>
>> Y me gustaría reemplazar la última columna solo si tengo el dato en esa
>> fila. Lo cual quedaría de la siguiente forma:
>>
>> 10 E 0.39804 0.26261 0.19737 E 0.1731 E 0.2333 E 0.392380 0
>> 11 S 0.42363 0.25062 0.20260 S 0.1583 S 0.1878 S 0.401904 15.80
>> 12 P 0.42042 0.24929 0.19191 P 0.1048 P 0.1998 P 0.403052 0
>> 13 Y 0.40127 0.26243 0.16593 Y 0.1162 Y 0.1635 Y 0.405571 32.48
>> 14 V 0.40633 0.27085 0.14794 V 0.1554 V 0.1456 V 0.415171 0
>> 15 M 0.39771 0.27276 0.12858 M 0.2129 M 0.1921 M 0.424976 40.69
>>
>> Cabe destacar que los datos con los que quiero reemplazar esa columna
>> vienen de otro archivo.
>> Gracias y feliz año.
>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120106/b95f3ca9/attachment.html>


Más información sobre la lista de distribución Python-es