[Python-es] Reemplazar en columnas

Carlos Herrera Polo carlos.herrerapolo en gmail.com
Vie Ene 6 22:58:19 CET 2012


Me parece que el problema que tienes es mas de como hacer el algoritmo....

El 06/01/12, Juan Luis Cano Rodríguez <juanlu001 en gmail.com> escribió:
> Lo siento pero no acabo de entenderte del todo. Si tienes problemas con
> Python, ¿por qué no escribes un algoritmo, un pseudocódigo o una receta con
> los pasos definidos de lo que quieres hacer exactamente para que te podamos
> ayudar mejor?
>
> Si necesitas iterar sobre dos listas diferentes, puedes usar la función
> zip()[1], como viene explicado en la documentación[2].
>
> [1]: http://docs.python.org/library/functions.html#zip
> [2]: http://docs.python.org/tutorial/datastructures.html#looping-techniques
>
> 2012/1/6 alito s <alito81 en gmail.com>
>
>> 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/
>>>
>>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>

-- 
Enviado desde mi dispositivo móvil


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