Python - loop sobre muchos archivos CSV

 
Vista:

loop sobre muchos archivos CSV

Publicado por tonino (5 intervenciones) el 08/12/2018 21:45:37
Distinguidos,
Gracias por el tiempo en leer este post.
Tengo como 200 archivos CSV que contienen una estructura de la siguiente forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Output of SMC2FS2: FAS for file 20123427.CB2A.BHE.sac.smc
 Nfreq_out =
   8192
           freq            fas
  0.0000000E+00  6.6406252E-03
  2.4414062E-03  1.3868844E+04
  4.8828125E-03  3.0740834E+04
  7.3242188E-03  2.7857139E+04
  9.7656250E-03  1.6535047E+04
  1.2207031E-02  9.7825762E+03
  1.4648438E-02  6.1421987E+03
  1.7089844E-02  6.5783145E+03
  1.9531250E-02  5.6137949E+03
  2.1972656E-02  3.5297178E+03

con el siguiente codigo logro leer todos los archivos, elimino la cabecera (4 lineas) y proceso los datos (almaceno en las variables X Y) para luego realizar un dibujo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for a in glob.glob('*kono_*'):
    lista.append(a)
for archis in lista:
    with open(archis,'r') as leo:
       for _ in range(4):
            next(leo)
       for line in leo:
           leo=[x.strip() for x in leo if x.strip()]
           leos=[tuple(map(float,x.split())) for x in leo[1:]]
           f=[x[0] for x in leos]
           fas=[x[1] for x in leos]
           plt.figure(1)
           plt.plot(f,fas,'r')
           plt.yscale('log')
           plt.xscale('log')
           plt.show()

El codigo funciona bien para cada archivo, es decir, se abre la ventana de figura, pero debo cerrarla para que genere otro plot y asi por 200 veces.
Como podria dibujar en la misma figura los 200 datos procesados?
Gracias

Tonino
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
sin imagen de perfil
Val: 12
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

loop sobre muchos archivos CSV

Publicado por Emmanuel (2 intervenciones) el 10/12/2018 23:01:03
Hola!

Debes poner tu plt.figure(1) y plt.show() fuera del for.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

loop sobre muchos archivos CSV

Publicado por tonino (5 intervenciones) el 10/12/2018 23:15:35
Estimado Emmanuel,
Cierto!!, muchas gracias!!!, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar