Leer carpetas y archivos con Python

Leer carpetas y saber los archivos que están en ellas es muy sencillo en Python. Vamos a utilizar las funciones listdir, isfile, join y walk.

Si queremos ver todo el contenido de un fichero vamos a utilizar la función listdir a la que pasaremos el path del fichero en cuestión:

from os import listdir

for cosa in listdir("."):
    print cosa

Este código imprimirá una lista con todos los elementos dentro del fichero. Si sólo queremos los archivos podemos utilizar la función isfile.

from os import listdir
from os.path import isfile, join

mi_path = "."
solo_archivos = [
    cosa for cosa in listdir(mi_path)
    if isfile(join(mi_path, f))]
for archivo en solo_archivos:
    print archivo

Hemos utilizado la función join para conseguir la ruta completa del archivo y utilizarla en la función isfile. Todo este proceso lo hemos realizado con una comprehension list.

¿Y si queremos recorrer todo el árbol de ficheros? Python, que tiene una solución para casi todo, nos proporciona la función walk. Esta función nos proporcionará, en cada iteración, el path actual, la lista de carpetas contenidas en ella y la lista de archivos contenidos en ella. Fácil ¿no?

from os import walk

for (path, ficheros, archivos) in walk("."):
    print path
    print ficheros
    print archivos

Este código imprimirá en cada iteración el path actual, sus ficheros y sus archivos. Recorrerá todo el árbol de ficheros que cuelga del path proporcionado.

Y esto es todo por hoy. ¡Disfrutad!