Bucle a través de archivos en el directorio en Python

Muhammad Waiz Khan 30 enero 2023
  1. Recorrer los archivos de un directorio en Python usando el método os.listdir()
  2. Recorrer los archivos de un directorio en Python utilizando el método pathlib.path().glob()
  3. Recorrer los archivos de un directorio en Python con el método os.walk()
  4. Recorrer los archivos de un directorio en Python utilizando el método iglob()
Bucle a través de archivos en el directorio en Python

Este tutorial explicará diferentes formas de recorrer los archivos de un directorio en Python. Necesitamos buscar un archivo en un directorio para implementar funciones como compartir archivos, ver archivos o cargar archivos para realizar alguna acción sobre los datos guardados en él.

Supongamos que tenemos un nombre de archivo y necesitamos leer datos de ese archivo, necesitamos algún método para hacer un bucle a través de los archivos en el directorio para encontrar el archivo que necesitamos. A continuación se explican los distintos métodos utilizados para recorrer los archivos de un directorio en Python.

Recorrer los archivos de un directorio en Python usando el método os.listdir()

El método listdir() del módulo os toma la ruta del directorio como entrada y devuelve una lista de todos los archivos en ese directorio. Como queremos encontrar el archivo específico en el directorio, tendremos que recorrer los nombres de los archivos para encontrar el archivo requerido. El siguiente ejemplo de código demuestra cómo encontrar un archivo específico iterando a través del archivo usando el método listdir() en Python.

import os

files = os.listdir("Desktop/myFolder")
myfile = "filename.txt"

for filename in files:
    if filename == myfile:
        continue

Recorrer los archivos de un directorio en Python utilizando el método pathlib.path().glob()

El método path() del módulo pathlib toma la cadena de la ruta del directorio como entrada y devuelve la lista de todas las rutas de los archivos en el directorio y subdirectorios.

Supongamos que el archivo que queremos encontrar es un archivo .txt, podemos obtener las rutas de todos los archivos .txt usando el método path().glob(). El siguiente ejemplo de código demuestra cómo recorrer todos los archivos .txt de un directorio utilizando el método path en Python.

from pathlib import Path

pathlist = Path("Desktop/myFolder").glob("**/*.txt")
myfile = "filename.txt"
for path in pathlist:
    if path.name == myfile:
        continue

El patrón **/*.txt devuelve todos los archivos con la extensión txt en la carpeta actual y sus subcarpetas. path.name devuelve sólo el nombre del archivo pero no la ruta completa.

Recorrer los archivos de un directorio en Python con el método os.walk()

El método walk() del módulo os también toma la cadena de la ruta del directorio como entrada y devuelve la ruta del directorio raíz como una cadena, la lista de los subdirectorios, y la lista de todos los archivos en el directorio actual y sus subdirectorios.

Para encontrar el archivo con el nombre filename.txt, podemos obtener primero todos los archivos en el directorio y luego hacer un bucle a través de ellos para obtener el archivo deseado. El siguiente ejemplo de código demuestra cómo encontrar un archivo haciendo un bucle a través de los archivos en un directorio.

import os

myfile = "filename.txt"
for root, dirs, files in os.walk("Desktop/myFolder"):
    for file in files:
        if file == myfile:
            print(file)

Recorrer los archivos de un directorio en Python utilizando el método iglob()

El método iglob() del módulo glob() toma la ruta del directorio y la extensión del archivo requerido como entrada y devuelve la ruta de todos los archivos con la misma extensión. El siguiente ejemplo de código demuestra cómo hacer un bucle a través de los archivos en un directorio y encontrar el archivo requerido en Python utilizando el método iglob().

import glob

for filepath in glob.iglob("drive/test/*.txt"):
    if filepath.endswith("/filename.txt"):
        print(filepath)

Artículo relacionado - Python File