¿Cómo iterar sobre archivos en el directorio usando Python?

Iteración de directorios sobre archivos en un directorio.

A continuación se muestran los diversos enfoques mediante los cuales se puede iterar sobre archivos en un directorio usando python:

Método 1: os.listdir()

Esta función devuelve la lista de archivos y subdirectorios presentes en el directorio dado. Podemos filtrar la lista para obtener solo los archivos usando la función os.path.isfile() :

Ejemplo:

Python3

# import required module
import os
# assign directory
directory = 'files'
 
# iterate over files in
# that directory
for filename in os.listdir(directory):
    f = os.path.join(directory, filename)
    # checking if it is a file
    if os.path.isfile(f):
        print(f)

Producción:

Método 2: os.scandir()

Este método se usa para obtener un iterador de objetos os.DirEntry correspondientes a las entradas en el directorio proporcionado por la ruta especificada.

Ejemplo:

Python3

# import required module
import os
 
# assign directory
directory = 'files'
 
# iterate over files in
# that directory
for filename in os.scandir(directory):
    if filename.is_file():
        print(filename.path)

Producción:

Método 3: módulo pathlib

Podemos iterar sobre los archivos en un directorio usando la función Path.glob() que agrega el patrón especificado en el directorio dado y produce los archivos coincidentes. Path.glob (‘*’) produce todos los archivos en el directorio dado 

Ejemplo:

Python3

# import required module
from pathlib import Path
 
# assign directory
directory = 'files'
 
# iterate over files in
# that directory
files = Path(directory).glob('*')
for file in files:
    print(file)

Producción:

Método 4: os.walk()

También podemos buscar subdirectorios usando este método, ya que produce una tupla de 3 (dirpath, dirnames, filenames) .

  • root : Imprime directorios solo de lo que especificó.
  • dirs : Imprime subdirectorios desde la raíz.
  • archivos : Imprime todos los archivos desde la raíz y los directorios.

Python3

# import required module
import os
 
# assign directory
directory = 'files'
 
# iterate over files in
# that directory
for root, dirs, files in os.walk(directory):
    for filename in files:
        print(os.path.join(root, filename))

Producción:

Método 5: módulo global

La función glob.iglob() devuelve un iterador sobre la lista de rutas que coinciden con el patrón dado.

Ejemplo:

Python3

# import required module
import glob
 
# assign directory
directory = 'files'
 
# iterate over files in
# that directory
for filename in glob.iglob(f'{directory}/*'):
    print(filename)

Producción:

Publicación traducida automáticamente

Artículo escrito por chetankhanna767 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *