[Python-es] Buscar e insertar en una línea
Daπid
davidmenhur en gmail.com
Jue Ago 25 19:40:04 CEST 2011
Si el fichero no es muy grande, puedes leerlo todo con readlines
oldata=oldfile.readlines()
newdata=[line+' 1000.0' if len(line)<=27 else line for line in oldata]
Y lo escribes a tu nuevo archivo.
Ojo, estoy haciendo uso del operador ternario, si usas una versión de
Python anterior a la 2.5 tendrás que expandir la list comprehension a
mano (pero no es difícil).
Y si el fichero es demasiado grande para cargar en memoria, usa
readline unas cuantas veces, procesa eso, escríbelo al nuevo archivo y
vuelve a leer.
2011/8/25 alito Z <alito81 en gmail.com>:
> Hola a todos!
> De nuevo con molestias.
> Una pregunta, quizás demasiado básica, lo se, pero no soy programadora y me
> cuesta mucho trabajo entender estas cosas. En fin, les platico.
> Tengo una serie de datos en columna como la siguiente:
>
> 1 M 0.84765 0.90205 0.26366
> 2 V 0.57929 0.77705 0.25279
> 3 S 0.40724 0.77592 0.16738
> 4 K 0.27477 0.65880 0.09151 7.11
> 5 L 0.31954 0.63491 0.13393 7.42
> 6 S 0.33374 0.57296 0.13246 7.60
>
>
> Las filas siempre son del mismo tamaño.
> Lo que quiero es agregar al final de cada columna la cantidad 1000.0, pero
> solo en las filas que no tienen un número a partir del 27. Por supuesto, hay
> que agregarle un espacio para que no quede el número unido a la columna
> anterior. Y quiero que quede algo como lo siguiente:
>
> 1 M 0.84765 0.90205 0.26366 1000.0
> 2 V 0.57929 0.77705 0.25279 1000.0
> 3 S 0.40724 0.77592 0.16738 1000.0
> 4 K 0.27477 0.65880 0.09151 7.11
> 5 L 0.31954 0.63491 0.13393 7.42
> 6 S 0.33374 0.57296 0.13246 7.60
>
> No me importaría utilizar algún comando para el shell.
> Alguna sugerencia?
> Gracias.
>
>
>
> _______________________________________________
> 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