viernes, 7 de noviembre de 2025

Datos. Análisis.

Fases del análisis de datos

Acceso a datos (IV)



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ó en ese momento fue la de 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 ser empleada 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 (documentos) que contiene un directorio, incluyendo los que se encuentran dentro de sus subdirectorios.
'''
import os

#Directorio principal sobre el que trabajar

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

'''
Ejemplo de ruta (puedes usar la que desees): D:/ESTUDIOS/Estudio_Desarrollo
'''

#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)

Y digo que lo comento (muy brevemente) porque la explicación es innecesaria, dados los comentarios que acompañan al código. Me limitaré a decir que se trata de uno de los posibles desarrollo 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 le proporciones al script la dirección (absoluta) de ese directorio del que quieres saber cuántos documentos contiene y cuáles son. 

Esto es posible mediante el uso de esa función dentro de un bucle for que nos permite recorrer la estructura del directorio (for carpeta,subcarpeta, archivo in os.walk(directorio):) y que pasa los archivos identificados a una lista (archivos.append(archivo)), pero también gracias al doble bucle (anidado) que nos permite acceder primero a cada una de las agrupaciones de archivos que devuelve el uso de 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 después mostramos como resultado final de nuestra "función".

Sobre el directorio con el que yo he probado el script, lo que obtengo es lo siguiente:
  • Primero el número de bloques de archivos (2) (Número de grupos de archivos 2);  el primero corresponde al propio 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 (anidado) 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.ods
 
A partir de aquí puedes pensar en diferentes formas de manejar la información obtenida. Puedes, por ejemplo, desarrollar procedimientos para almacenar esta la información; pero también puedes mejorar el script en su fase inicial, automatizando el acceso a una colección de directorios que deseas analizar. Las posibilidades son muchas.

No hay comentarios:

Publicar un comentario

Comenta esta entrada