El 21 de abril de 2010 05:42, Juan Camilo Hernandez D < camilo.hernan...@gmail.com> escribió:
> Hola colisteros. > > Este es mi primer mensaje a la lista de pyhton-es. > > Le escribo por que tengo el siguiente problema. En este momento me > encuentro desarrollando mi trabajo de investigación en el cual hago uso de > varios modelos meteorológicos, uno de estos modelos es el FLEXTRA el cual > genera unos archivos de salida en texto plano. Un ejemplo de salida de este > archivo lo podemos ver aqui ( http://pastebin.com/x4VgXEBC ) o en el > manual del modelo ( > http://zardoz.nilu.no/~andreas/flextra/flextra3.html#tth_sEc5.5<http://zardoz.nilu.no/%7Eandreas/flextra/flextra3.html#tth_sEc5.5>). > > En mi trabajo de grado contemplo hacer un análisis de agrupamiento (Cluster > Analysis) para esto he contemplado utilizar el modulo de python pycluster y > para graficar los resultados utilizar la herramienta matplotlib. > > El problema consiste en cambiar el formato de mis datos a un formato donde > las columnas representen las variables y las filas los datos, agregando tres > columnas adicionales para identificar cada conjunto de datos. Un ejemplo de > lo que deseo conseguir es el siguiente: http://pastebin.com/ja86AJWP > > Le escribo por que si bien tengo un poco de experiencia programando con > python, mis habilidades en el manejo de archivos es muy poca. Adicionalmente > no he podido encontrar ejemplos donde se muestre algo similar a lo que deseo > conseguir. > > Agradecería cualquier ayuda que me puedan brindar para solucionar este > problema de programacion que tengo, para mi complejo espero que para alguien > afuera sea algo trivial. > > De antemano muchas gracias por toda la ayuda que me puedan brindar. > > -- > Juan Camilo Hernández Díaz > Ingeniero Sanitario - Investigador > Grupo de Ingeniería y Gestión Ambiental GIGA > Universidad de Antioquia > > > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > Hola. Viendo los ficheros y haciendo el código rápido y mal se me ocurre: ------------------------------------------------------------------------------------------- #Abrimos el fichero de datos y leemos la cabecera fichero = open('ruta_hasta_tu_fichero', 'r') lineas_cabecera = int(fichero.readline().split()[0]) for i in range(lineas_cabecera-1): basura = fichero.readline() ;Esto lee la cabecera pero no hace nada con ella #Abrimos el fichero donde guardamos la salida reformateada y metemos la cabecera salida = open('ruta_y_nombre_del_fichero_de_salida', 'w') salida.write('DATE TIME SECS LONGIT LATIT ETA PRESS \ Z Z-ORO PV THETA Q') #Empezamos a leer los datos for i in range(pasost): # donde pasost indica el numero de pasos temporales del modelo # Es decir, si la salida del modelo es a las 0000 y a las 1200 y se corre para 20 días, pasost = 20*2 fechayhora = fichero.readline().split() date = fechayhora[1] time = fechayhora[3] basura = fichero.readline() for j in range (numero_integraciones): # donde numero_integraciones será el número de pasos del modelo # es decir, numero_integraciones será el número de datos que hay en cada date y time datos = fichero.readline().split() salida.write(date + ' ' + time + ' ' + str(datos[0]) + ' ' \ + str(datos[1]) + ' ' + str(datos[2]) + ' ' + str(datos[3]) + ' ' \ + str(datos[4]) + ' ' + str(datos[5]) + ' ' + str(datos[6]) + ' ' \ + str(datos[7]) + ' ' + str(datos[8]) + ' ' + str(datos[9]) + '\n') fichero.close() salida.close() ------------------------------------------------------------------------------------------------ La salida se puede formatear como tú quieras y seguro que te aportan soluciones más interesantes e inteligentes que esta pero de momento mi python y esta hora de la mañana da para esto ;-D Saludos.
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/