Script de Python 3 para calcular el 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")