[Python-es] Buscar e insertar en una línea

Daπid davidmenhur en gmail.com
Jue Ago 25 23:08:58 CEST 2011


Lo que pasa es que estás intentando escribir la lista con write, y eso
Python no sabe. Para escribir una lista tienes que usar writelines, o
hacerlo a mano (write a cada línea).

Antes se me pasó un detalle por alto, y son los saltos de línea.
Readlines te va a devolver cada línea acabada en un salto de línea, y
al añadir el 1000, aparecerá en la línea siguiente.

Aquí todo corregido:

archivoviejo=open('datosviejos.txt', 'r')
datosviejos=archivoviejo.readlines()
archivoviejo.close()
datosnuevos=[line[:-1]+' 1000.0\n' if len(line.split(' '))==5 else
line for line in datosviejos]

archivonuevo=open('datosnuevos.txt', 'w')
archivonuevo.writelines(datosnuevos)
archivonuevo.close()

Fíjate que antes de añadir el 1000.0, quito el último caracter (el
salto de línea) y se lo vuelvo a añadir al final.

De todas formas, creo que había un comando para quitar los saltos de
línea (dependen del SO).


2011/8/25 alito Z <alito81 en gmail.com>:
> Hola Kiko:
> O.K. El problema es que ahora me sale el siguiente error: TypeError:
> expected a character buffer object.
> Alguién me puede explicar qué significa y qué puedo hacer para remediarlo?
> Saludos!
>
> 2011/8/25 Kiko <kikocorreoso en gmail.com>
>>
>>
>> El 25 de agosto de 2011 21:47, alito Z <alito81 en gmail.com> escribió:
>>>
>>> Hola Darrid:
>>> La longitud de las columnas afortunadamente no cambia, siempre es la
>>> misma.
>>> Intente lo primero que pusiste (newdata=[line+' 1000.0' if len(line)<=27
>>> else line for line in oldata]), sin embargo, no se añade el número 1000.0.
>>> Qué hago?
>>>
>>
>> Después de hacer eso:
>> newdata=[line+' 1000.0' if len(line)<=27 else line for line in oldata]
>>
>> Debes guardar los nuevos datos con el 1000.0 añadido en otro fichero.
>>
>> open('minuevofichero.txt', 'w')
>> ...
>>
>>
>> _______________________________________________
>> 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/
>
>


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