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!

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: