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
Estructura de directorio en uso:
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