Script de Python 3 para calcular número de ficheros (con la extensión que desees) contenidos en todas y cada una de 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/03-numero-ficheros-subcarpetas/"), el nombre del archivo de texto que guarde la información de salida (en mi caso "numero-ficheros-sim-subcarpetas.txt") y la extensión de los ficheros que te interese (en mi caso ".yob").

import os

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

# Definir la ruta de la carpeta donde se guardará el archivo de texto
output_dir = "/home/jant.encinar/py-linux/03-numero-ficheros-subcarpetas/"

# 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)):
        # Contar el número de archivos ".yob" en la subcarpeta
        sim_files = [file for file in os.listdir(os.path.join(root_dir, subdir)) if file.endswith(".yob")]
        num_sim_files = len(sim_files)
        # Añadir el nombre de la subcarpeta y el número de archivos ".yob" a la lista de resultados
        results.append((subdir, num_sim_files))

# 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, "numero-ficheros-sim-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]}\n")