Script de Python calcular el espacio (MB) que ocupan todas las subcarpetas dentro de una carpeta.

Tendrás que editar el script y cambiar las rutas de la carpeta raíz que se desea analizar (en mi caso "/home/jant.encinar/runDCs/"), la ruta de la carpeta donde se guardará el archivo de texto (en mi caso "/home/jant.encinar/py-linux/02-espacio-subcartepa/") y el nombre del archivo de texto que guarde la información de salida (en mi caso "espacio-subcarpetas.txt").

import os

# Definir la ruta de la carpeta raíz que se desea analizar
root_dir = "/home/jant.encinar/runMD/"

# Definir la ruta de la carpeta donde se guardará el archivo de texto
output_dir = "/home/jant.encinar/py-linux/02-espacio-subcartepa/"

# Crear una lista para almacenar los resultados
results = []

# Recorrer todas las subcarpetas en la carpeta raíz
for subdir in os.listdir(root_dir):
    # Comprobar que cada elemento en la carpeta raíz es una subcarpeta
    if os.path.isdir(os.path.join(root_dir, subdir)):
        # Calcular el tamaño de la subcarpeta en megabytes
        size_mb = round(sum(os.path.getsize(os.path.join(dirpath, filename)) for dirpath, dirnames, filenames in os.walk(os.path.join(root_dir, subdir)) for filename in filenames) / (1024 * 1024), 2)
        # Añadir el nombre de la subcarpeta y su tamaño a la lista de resultados
        results.append((subdir, size_mb))

# Ordenar los resultados por orden alfabético del nombre de la subcarpeta
results_sorted = sorted(results, key=lambda x: x[0])

# Crear el archivo de texto con los resultados
output_file = os.path.join(output_dir, "espacio-subcarpetas.txt")
with open(output_file, "w") as f:
    # Escribir los resultados ordenados en el archivo de texto
    for result in results_sorted:
        f.write(f"{result[0]}\t{result[1]} MB\n")

Podrás ver unos resultados en el fichero de texto parecidos a los que muestra la siguiente imagen:





Última modificación: