viernes, 7 de noviembre de 2025

Datos. Directorios y archivos

Archivos. Búsqueda en profundidad

Siguiendo con esta temática, hemos visto en la entrada anterior como se podría concretar un procedimiento de acceso al contenido de un directorio y a sus subdirectorios con una finalidad concreta: identificar los documentos que contienen e identificar de que tipo son, en función de su extensión. Una de las cuestiones que mayor dificultad presentó fue listar y cuantificar los documentos con independencia de la estructura del directorio. Ofrezco en esta un intento de solución partiendo de lo que sabemos sobre como acceder a él

Esta solución al problema ni es la única ni la mejor, pero sí suficientemente sencilla como para poder emplearla incluso como herramienta o función; al menos así la he formulado, incluyendo la entrada interactiva de la dirección o ruta absoluta del directorio sobre el que deseemos trabajar. Primero te presento el script y después lo comento.



#Acceso a los archivos que contiene un directorio principal, 
#incluyendo los que tiene dentro de sus subdirectorios.

import os

#Directorio principal
directorio = input('Escriba o copie la ruta del directorio a analizar: ')

#Implementación de la función os.walk()
archivos = []
list_archiv = []
i = 0

for carpeta,subcarpeta, archivo in os.walk(directorio):
	archivos.append(archivo)

#Número de grupos de archivos en función de la estructura del directorio principal
n_archiv = len(archivos)
print (f'Número de grupos de archivos {str(n_archiv)}')

#Trasnformamos los agrupamientos en una lista única de documentos
for i in range(n_archiv):
	for ar in archivos[i]:
		list_archiv.append(ar)

# Número total de documentos de la lista anterior
n_ar = len(list_archiv)
print(f'Total archivos {str(n_ar)}')

# Lista de los archivos identificados
print(f'Listado íntegro de los archivos del directorio {directorio}\n')

for a in list_archiv:
	print(a)


Se trata de uno de los posibles desarrollos del procedimiento de acceso al contenido de un directorio basado en la función os.walk() que aquí se ofrece como herramienta interactiva: es necesario que proporciones la ruta absoluta del directorio mediante la función dentro de un bucle for carpeta,subcarpeta, archivo in os.walk(directorio): que pasa los archivos identificados a una lista archivos.append(archivo) pero también gracias al bucle anidado que permite acceder primero a cada una de las agrupaciones de archivos que devuelve la función (for i in range(n_archiv):) y después a su contenido (for ar in archivos[i]:) para entregarlos a una segunda lista (list_archiv.append(ar)), que es la que mostramos como resultado de la función.

Sobre el directorio con el que yo he probado el script obtengo:

  • Primero el número de bloques de archivos: "Número de grupos de archivos 2"; el primero corresponde al directorio principal (D:/ESTUDIOS/Estudio_Desarrollo), que contiene un subdirectorio y una serie de documentos (5 hojas de cálculo); y el segundo al citado subdirectorio (AnalisisTotal).
  • Segundo el número de documentos totales, esto es, los 5 ubicados en el directorio principal y los 7 que contiene el subdirectorio (Total archivos 12)
  • Finalmente se muestran todos los archivos (12) en forma de lista, dado que fueron solicitados (print(a)) dentro de un bucle que recorre el iterable for a in list_archiv: que se generó list_archiv.append(ar) mediante el bucle interior que usamos para acceder a los archivos.
Desarrollo_AreaLenguaje.ods
Desarrollo_AreaMG.ods
Desarrollo_AreaMotricidad.ods
Desarrollo_AreasMF.ods
Desarrollo_AreasTotal.ods
Desarrollo_Precocidad.ods
Desarrollo_Promedio.ods
Desarrollo_Resultados.ods
Desarrollo_Resumen.ods
Desarrollo_Retraso.ods
Desarrollo_Validez.ods
Desarrollo_ValoresTotales.od

No hay comentarios:

Publicar un comentario

Comenta esta entrada