[uylug-programming] Python cargar un array desde archivo

Haroldo Stenger harold.stenger at gmail.com
Tue Jun 11 21:24:01 PDT 2013


hola Rodolfo

El 22 de mayo de 2013 22:30, Rodolfo Pilas <r at pil.as> escribió:

> … 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  ;)
>
>
Otra cosa que es importante, que incluso puede ir "contra" el armado del
array on-the-fly, es el hecho de que a medida que crece el array, la
memoria se va llenando con las líneas del archivos. En muchos casos no te
importa mucho porque es más importante escribir un programa de determinado
modo, o porque de algún modo sabés o suponés que el tamaño del archivo
nunca superará un límite razonable. Para casos pesados, lo recomendable es:
usar iterators (como imap) pero no usar arrays, sino que en un loop común
(for o while) a medida que leés, realizás las acciones derivadas
directamente, si es que las podés realizar línea a línea. Muchas veces
tenés que mantener un "estado", e incluso en esos casos puede evitarse el
array. Si te sobre ram, y siempre te va a sobrar, no sería un problema,
pero si el script va a correr en forma simultánea en más de un proceso,
esto multiplica el total de memoria que vas ocupando con los respectivos
arrays intermedios, y es un punto a favor de no almacenar la información
del archivo en un array. Va en gustos, pero te lo comento porque es una
experiencia frecuente darse cuenta que no es "sustentable"  meter todo en
la ram.

salute
Haroldo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.uylug.org.uy/pipermail/uylug-programming-uylug.org.uy/attachments/20130612/335c2a2c/attachment-0001.htm>


More information about the Uylug-programming mailing list