Añado: si la longitud de las columnas puede variar, ejemplo: 1 M 0.8 0.905 0.6366 2 V 0.57929 0.77 0.2279 3 S 0.40724 0.77592 0.16738 4 K 0.7477 0.5880 0.09151 7.11 5 L 0.319 0.691 0.13393 7.42 6 S 0.3374 0.5296 0.13246 7.60
en vez de comprobar la longitud de la línea deberías contar el número de columnas, esto es: if len(line.split(' '))==5 Parte la línea por los espacios y cuenta cuántos cachos te quedan. De hecho, es una práctica más segura. A menos que estés *muy* segura de que el archivo original está bien formateado y el rendimiento sea crítico (esto es un poquito más lento), te recomiendo que uses esta. 2011/8/25 Daπid <davidmen...@gmail.com>: > 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 <alit...@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@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/