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