[uylug-programming] Python cargar un array desde archivo

Rodolfo Pilas r at pil.as
Wed May 22 18:30:12 PDT 2013


… y yo algun día aprenderé a razonar así:

articulos = [line.strip().lower() for line in open('datos.dat')]  

…. porque soy de los que pone el for en el margen izquierdo…. aunque python me va educando de a poco y uso while for  ;)

GRACIAS!!!!  (espectacular la ayuda!)


--  
Rodolfo Pilas
Enviado con Sparrow (http://www.sparrowmailapp.com/?sig)


El miércoles, 22 mayo 2013 a las 18:28 , Bruno Berisso escribió:

> articulos = [line.strip().lower() for line in open('datos.dat')]  
>  
> Que bien eso!
> Tengo que aprender Python...
>  
> El miércoles, 22 de mayo de 2013, Andrés Moreira escribió:
> > Otra forma, podría ser:
> >  
> >  articulos = [line.strip().lower() for line in open('datos.dat')] # y python se encarga de cerrar el archivo on exit
> >  
> > ó  
> >  
> > with open('datos.dat') as file_handle:
> >    articulos = [line.strip().lower() for line in file_handle]
> >  
> > si esperas lineas vacías podrías hacer :
> >  
> > from itertools import imap  
> >  
> > with open('datos.dat') as file_handle:
> >    articulos = [item.lower() for item in imap(lambda line: line.strip(), file_handle) if item]
> >  
> >  
> > Saludos,  
> >  Andrés
> >  
> >  
> >  
> >  
> > 2013/5/22 Martin Arrieta <mail at martinarrieta.me (javascript:_e({}, 'cvml', 'mail at martinarrieta.me');)>
> > > Rodolfo,  
> > >  
> > > Por lo que tengo entendido (no llegue a chequear el código) el readlines no es otra cosa que un loop linea a linea.. por lo que podrías hacer un for con el file handler para evitar recorrer el array 2 veces.  
> > >  
> > > Por ejemplo:
> > >  
> > > p = open('datos.dat')
> > >  
> > > articulo = []
> > > for item in p:
> > >     articulo.append(item.lower().strip())
> > >  
> > > p.close
> > >  
> > > print "-" + articulo[0] + "-"
> > >  
> > > Saludos.
> > >  
> > >  
> > >  
> > > 2013/5/22 Rodolfo Pilas <r at pil.as (javascript:_e({}, 'cvml', 'r at pil.as');)>
> > > > Estimados expertos pythoneros:
> > > >  
> > > > Tengo un archivo con un dato por renglón y deseo cargarlo en un array[] y queda con los enter del final, por lo que a cada dato debo hacerle strip(), ya que luego debo compararlo con una variable.  
> > > >  
> > > > Este es mi código:
> > > >  
> > > > p = open('datos.dat')
> > > > pas = p.readlines()
> > > > p.close()
> > > >  
> > > > articulo = []  
> > > > for item in pas:
> > > >     articulo.append(email.strip().lower())
> > > >  
> > > > El tema es que tengo ese array pas[] que es intermedio, pues NO ENCONTRE como hacer el strip() en el momento de la creación del array y entonces debo recorrerlo y cargarlo en otro array para hacer ese strip().  
> > > >  
> > > > Me resulta super desprolijo esto, lo que me lleva a pensar que hay una mejor forma de hacerlo y por eso recurro a Uds.
> > > >  
> > > > Saludos,
> > > > Rodolfo
> > > >  
> > > >  
> > > > _______________________________________________
> > > > Uylug-programming mailing list
> > > > Uylug-programming at listas.uylug.org.uy (javascript:_e({}, 'cvml', 'Uylug-programming at listas.uylug.org.uy');)
> > > > http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
> > > >  
> > >  
> > >  
> > > _______________________________________________
> > > Uylug-programming mailing list
> > > Uylug-programming at listas.uylug.org.uy (javascript:_e({}, 'cvml', 'Uylug-programming at listas.uylug.org.uy');)
> > > http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
> > >  
> >  
> >  
> >  
> > --  
> > --
> > Andrés Moreira.
> > elkpichico at gmail.com (javascript:_e({}, 'cvml', 'elkpichico at gmail.com');)  
>  
> --  
> -------------------------------------------------------------------------------------------------------------------------
> Este mensaje no contiene virus, debido a que todo su contenido se ha
> generado bajo Linux.
> -------------------------------------------------------------------------------------------------------------------------
> _______________________________________________
> Uylug-programming mailing list
> Uylug-programming at listas.uylug.org.uy (mailto:Uylug-programming at listas.uylug.org.uy)
> http://listas.uylug.org.uy/listinfo.cgi/uylug-programming-uylug.org.uy
>  
>  


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.uylug.org.uy/pipermail/uylug-programming-uylug.org.uy/attachments/20130522/fdb256cc/attachment-0002.htm>


More information about the Uylug-programming mailing list