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:
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.
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
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


1