Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/10/2009, 09:22
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con archivo de texto en Python

Si el archivo no es muy grande, se puede procesar fácilmente con un for (si es grande también se puede procesar, pero quizás valga la pena buscar otras formas además de la que voy a sugerirte)
No hay control de errores y probablemente se pueda mejorar mucho, pero en principio es la idea que se me ocurre:

Código python:
Ver original
  1. archivo = open("tuarchivo")
  2. lista_datos = []
  3.  
  4. # leo hasta que encuentro $PEAKS
  5. while not archivo.readline().startswith("$PEAKS:"):
  6.     pass
  7.  
  8. # la siguiente línea es la que tiene el "control de ciclo"
  9. num_lineas = int( archivo.readline() )
  10.  
  11. # ahora leo las siguientes num_lineas líneas del archivo
  12. for i in xrange(0, num_lineas):
  13.     datos = archivo.readline().split(" ")
  14.     lista_datos.append( (datos[0], datos[3]) )
  15.  
  16. # por último, leer la última línea
  17. for linea in archivo:
  18.     pass
  19.  
  20. # obtengo el tercer campo de la línea
  21. divisor = linea.split(" ")[3]
  22.  
  23.  
  24. # genero la salida:
  25. for (col1, valor) in lista_datos:
  26.     print "%s, %s" % col1, (valor / divisor)

Sobre tu archivo de ejemplo, la salida que me da este programa es
Código:
6 - 0.0
19 - 0.00235797929394
20 - 0.00877835558747
22 - 0.00463617733358

Saludos.