w3schools method iter for files __iter__ python iterator

for - python iter method



Iteradores de Python: ¿Qué proporciona el Iterador de iglob() sobre la lista de glob()? (2)

Dada la pieza de código:

from glob import glob, iglob for fn in glob(''/*''): print fn print '''' for fn in iglob(''/*''): print fn

Al leer la documentation de glob, veo que glob () devuelve una lista básica de archivos e iglob un iterador. Sin embargo, puedo iterar sobre ambos y la misma lista de archivos es devuelta por cada uno de ellos.

He leído la documentación en Iterator pero no ha arrojado más luz sobre el tema realmente!

Entonces, ¿qué beneficio me proporciona iglob () al devolver un Iterador en la lista de glob ()? ¿Obtengo funcionalidad adicional sobre mi antiguo amigo la lista humilde?


Añadiendo a la respuesta de amit . iglob () es útil en el caso particular en el que si elimina un directorio en la lista, los archivos y carpetas en la lista serán almacenados por glob () y, por lo tanto, el acceso adicional en la excepción de lanzamientos de bucle. Pero al usar iglob () podemos superar la excepción de modificación concurrente


La diferencia se menciona en la propia documentación:

Devuelva un iterador que genere los mismos valores que glob () sin almacenarlos todos simultáneamente.

Básicamente la lista tendrá todos los elementos en memoria. Iterador no necesita, y por lo tanto requiere menos memoria.