Python: enumera los archivos en el directorio con extensión

En este artículo, discutiremos diferentes casos de uso en los que queremos enumerar los archivos con sus extensiones presentes en un directorio usando python.

Módulos utilizados

  • so :
  • glob : archivos/nombres de ruta

Estructura de directorio en uso:

Vista raíz de la estructura del directorio

Representación visual de archivos de directorio

Método 1: Usar el módulo `os`

Este módulo proporciona una forma portátil de usar la funcionalidad dependiente del sistema operativo. El método os.listdir() enumera todos los archivos presentes en un directorio. Podemos hacer uso de os.walk() si también queremos trabajar con subdirectorios.

Sintaxis:

 os.listdir(ruta = ‘.’)

Devuelve una lista que contiene los nombres de las entradas en el directorio dado por la ruta. 

Sintaxis:

 os.walk(superior, topdown=Verdadero, onerror=Ninguno, followlinks=Falso)

Genera los nombres de los archivos en un árbol de directorios recorriendo el árbol de arriba hacia abajo o de abajo hacia arriba.

Ejemplo 1: Enumere los archivos y directorios presentes en root/home/project

Python

import os
  
# To get directories as well as files present
# in a path
list_1 = os.listdir(path=r"root/home/project")
print(list_1)
  
# To get only files present in a path
list_2 = os.listdir(path=r"root/home/project")
  
# Loop through each value in the list_2
for val in list_2:
    
    # Remove the value from list_2 if the "." is 
    # not present in value
    if "." not in val:
        list_2.remove(val)
print(list_2)

Producción :

['documents', 'code', 'charter.xlsx', 'timeline.jpg']
['charter.xlsx', 'timeline.jpg']

Ejemplo 2: Enumere todos los subdirectorios y subarchivos presentes en root/home/project

Python

import os
  
all_files = list()
all_dirs = list()
  
# Iterate for each dict object in os.walk()
for root, dirs, files in os.walk("root/home/project"):
    # Add the files list to the the all_files list
    all_files.extend(files)
    # Add the dirs list to the all_dirs list
    all_dirs.extend(dirs)
  
print(all_files)
print(all_dirs)

Producción:

[‘charter.xlsx’, ‘timeline.jpg’, ‘report.txt’, ‘workbook.pdf’, ‘trigger.sql’, ‘schema_template.py’, ‘sqlalchemy_models.py’, ‘info.log’, ‘ README.md’, ‘requisitos.txt’, ‘main.py’]

[‘documentos’, ‘código’, ‘base_de_modelos’] 

Método 2: Usando el módulo `glob`

El módulo glob encuentra todos los nombres de ruta que coinciden con un patrón específico de acuerdo con las reglas utilizadas por el shell de Unix. Usaremos la función glob.glob() para lograr nuestra tarea. La idea detrás de Unix shell-like significa que podemos proporcionar patrones similares a Unix shell para buscar archivos.

Sintaxis:

 glob.glob(ruta, *, recursivo=Falso)

Devuelve una lista de nombres de ruta que coinciden con el nombre de ruta, que debe ser una string que contenga una especificación de ruta.

El ‘ * ‘ significa que coincidirá con todos los elementos devueltos por un método similar al os.listdir() .

Ejemplo 1: obtenga todos los directorios y archivos en raíz/inicio/proyecto/código

Python

import glob
  
list_ = glob.glob(r"root/home/project/code/*")
  
print(list_)

Producción:

[‘modelos_de_base_de_datos’, ‘LÉAME.md’, ‘requisitos.txt’, ‘principal.py’]

Ejemplo 2: Obtener todos los archivos python (.py) en root/home/project/code/database_models

Python

import glob
  
list_ = glob.glob(r"root/home/project/code/database_models/*.py")
  
print(list_)

Producción:

[‘schema_template.py’, ‘sqlalchemy_models.py’]

Publicación traducida automáticamente

Artículo escrito por apathak092 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 *