[Python-es] Abrir varios archivos con "open"

Rolando Paz flxpaz en gmail.com
Lun Ene 4 12:31:00 EST 2016


Muchas gracias a todos. Explicare de forma general lo que quiero lograr:

Logre graficar los archivos "bram_aa", "bram_cc", "bram_ac_real" y
"bram_ac_imag" de la siguiente forma:


#ABRO LOS ARCHIVOS
bram_aa=open("bram_aa","r")
bram_cc=open("bram_cc","r")
bram_ac_real=open("bram_ac_real","r")
bram_ac_imag=open("bram_ac_imag","r")

#USO SOLO LAS COLUMNAS 2 Y 8 DEL ARCHIVO BRAM
cols_aa = np.loadtxt(bram_aa, dtype=str, usecols=[2,8])
cols_cc = np.loadtxt(bram_cc, dtype=str, usecols=[2,8])
cols_ac_real = np.loadtxt(bram_ac_real, dtype=str, usecols=[2,8])
cols_ac_imag = np.loadtxt(bram_ac_imag, dtype=str, usecols=[2,8])

#DEFINO EN UN PLANO XY, QUIEN ES "X" Y QUIEN ES "Y"
x1 = cols_aa[:,0].astype(int)
y1 = cols_aa[:,1]

x2 = cols_cc[:,0].astype(int)
y2 = cols_cc[:,1]

x3 = cols_ac_real[:,0].astype(int)
y3 = cols_ac_real[:,1]

x4 = cols_ac_imag[:,0].astype(int)
y4 = cols_ac_imag[:,1]

Luego uso plot(x,y) entre otros comandos, para obtener las gráficas.

Ahora de acuerdo a las características de mi aplicación, necesito
obtener varias veces cada uno de los archivos bram, luego hacer un promedio
de los datos de los archivos y luego graficar el promedio, es decir que
ahora tengo los archivos:

bram_aa0
bram_aa1
bram_aa2graficasgraficasgraficas
....etc

bram_cc0
bram_cc1
bram_cc2
....etc

bram_ac_real0
bram_ac_real1
bram_ac_real2
....etc

bram_ac_imag0
bram_ac_imag1
bram_ac_imag2
....etc

Para la parte de abrir los archivos, hago esto:

bram_aa = []
bram_cc = []
bram_ac_real = []
bram_ac_imag = []

#CREANDO UN BUCLE PARA N ARCHIVOS, COMO EJEMPLO SE USO 3 ITERACIONES
for i in range(0,3):
    bram_aa.append(open("bram_aa%s"%i,"r"))
    bram_cc.append(open("bram_cc%s"%i,"r"))
    bram_ac_real.append(open("bram_ac_real%s"%i,"r"))
    bram_ac_imag.append(open("bram_ac_imag%s"%i,"r"))

Ahora entiendo que debo usar otro bucle para que lea las columnas 2 y 8 de
cada bram y luego definir quien es la X y quien es Y, y luego hacer el
promedio de todas la columnas para luego graficarlas.

Que opinan?

Saludos

Rolando Paz






El 3 de enero de 2016, 19:04, Edison Ibañez <edison en openmailbox.org>
escribió:

> si aun te sirve también lo puedes hacer de esta forma:
>
> files = []
> data_aa = {}
> for i in range(0, 5):
>     files.append('bram_aa{}'.format(i))
>
> for i in files:
>     data_aa[i] = open(i, 'r')
>
> print(data_aa[files[0]])
>
> El 03/01/16 a las 19:59, Rolando Paz escribió:
>
> Creo que encontré la solución con esto:
>
> bram_aa = []
> bram_cc = []
>
> for i in range(0,5):
>     bram_aa.append(open("bram_aa%s"%i,"r"))
>     bram_cc.append(open("bram_cc%s"%i,"r"))
>
> Gracias igualmente...
>
> Saludos
>
> Rolando Paz
>
> El 3 de enero de 2016, 18:42, Rolando Paz <flxpaz en gmail.com> escribió:
>
>> Hola Ignacio
>>
>> Hice esto:
>>
>> bram_aa = []
>> bram_cc = []
>>
>> for i in range(0,5):
>>     bram_aa[i] = open("bram_aa%s"%i,"r")
>>     bram_cc[i] = open("bram_cc%s"%i,"r")
>>
>> print 'este es el contenido de bram_cc2 =',bram_cc2
>>
>> y el error que aparece es este:
>>
>> Traceback (most recent call last):
>>   File "plot_artecorr_4bram_auto_promedio.py", line 39, in <module>
>>     bram_aa[i] = open("bram_aa%s"%i,"r")
>> IndexError: list assignment index out of range
>>
>> que opinas?
>>
>> El 3 de enero de 2016, 18:25, Ignacio Rodríguez < <nachoel01 en gmail.com>
>> nachoel01 en gmail.com> escribió:
>>
>>> Hola, yo usaría algo así
>>>
>>> bram_aa = []
>>> bram_bb = []
>>> bram_cc = []
>>> for i in range(0,5):
>>>     bram_aa[i] = open("bram_aa%s"%i,"r")
>>>     bram_bb[i] = open("bram_bb%s"%i,"r")
>>>     bram_cc[i] = open("bram_cc%s"%i,"r")
>>>
>>> Y luego simplemente los "llamas" bram_aa[0], bram_bb[0], bram_cc[0]
>>>
>>>
>>>
>>> Ignacio Rodríguez
>>> SugarLabs at Facebook
>>> <https://www.facebook.com/pages/SugarLabs/187845102582>
>>>
>>> El 3 de enero de 2016, 21:17, Rolando Paz< <flxpaz en gmail.com>
>>> flxpaz en gmail.com> escribió:
>>>
>>>> Hola a todos de nuevo...
>>>>
>>>> Una carpeta contiene estos 10 archivos:
>>>>
>>>> bram_aa0
>>>> bram_aa1
>>>> bram_aa2
>>>> bram_aa3
>>>> bram_aa4
>>>>
>>>> bram_cc0
>>>> bram_cc1
>>>> bram_cc2
>>>> bram_cc3
>>>> bram_cc4
>>>>
>>>> Lo que quiero lograr hacer es algo parecido a esto:
>>>>
>>>> for i in range(0,5):
>>>>     bram_aa = [open("bram_aa%s"%i,"r")]
>>>>     bram_cc = [open("bram_cc%s"%i,"r")]
>>>>
>>>> Sin embargo, con este for lo que logro es que la variable bram_aa tome
>>>> el ultimo valor iterado, es decir que bram_aa = bram_aa4 y bram_cc =
>>>> bram_cc4, y lo que me gustaría es que se crearan todas las variables.
>>>>
>>>> En esencia lo que quiero es abrir cada uno de los diez archivos, sin
>>>> embargo no quiero colocar paralelo las 10 ordenes "open" por separado.
>>>>
>>>> bram_aa0=open("bram_aa0","r")
>>>> bram_aa1=open("bram_aa1","r")
>>>> bram_aa2=open("bram_aa2","r")
>>>> ....etc
>>>>
>>>> Cualquier ayuda se los agradeceré....
>>>>
>>>> Feliz Año 2016!
>>>>
>>>> Saludos
>>>>
>>>>
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en python.org
>>>> https://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>
>
> _______________________________________________
> Python-es mailing listPython-es en python.orghttps://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20160104/19f05626/attachment.html>


Más información sobre la lista de distribución Python-es