<jupyter_start><jupyter_text>Notebook para Leer ficheros de una carpeta  Método que dado una carpeta padre y un numero de iteraciones devuelve un diccionario con la estructura de ficheros y carpetas<jupyter_code>%load_ext autoreload
%autoreload 2
import os.path
import json
import re
def folder_to_dict(path, max):
    """
    Método que dado una carpeta padre y un numero de iteraciones devuelve un diccionario con la estructura de ficheros y carpetas
    :param path: Ruta de inicio de directorios y ficheros
    :param max: Número máximo de iteraciones. <1 indica que solo se analiza la carpeta dada
    :return: Diccionario con estrucutra de ficheros
    """
    if not os.path.exists(path):
        raise FileNotFoundError
    max -= 1
    d = {'name': os.path.basename(path)}
    if os.path.isdir(path):
        d['type'] = "folder"
        if (max > 0):
            d['children'] = [folder_to_dict(os.path.join(path, x), max) for x in os.listdir(path)]
    else:
        d['type'] = "file"
    return d
print(json.dumps(folder_to_dict("/", 2)))
import src.utils.config as config


def check_file(file_path):
    if not os.path.isfile(file_path): raise FileNotFoundError("Fichero no encontrado")
    filename, file_extension = os.path.splitext(file_path)
    if not re.match(r"(^.[a-zA-Z0-9]+$)", file_extension) or \
        file_extension[1:] not in config.audio_extensions: raise ValueError("Error en extension de fichero")

def read_audio(path):
    try:
        check_file(path)
    except (FileNotFoundError, ValueError) as e:
        print(e)
read_audio("/home/pablo/Dev/TFG/S2T_AudioProcess/README.md")<jupyter_output>Error en extension de fichero
{'fraction_non_alphanumeric': 0.10174593618302227, 'fraction_numerical': 0.005418422636965683, 'mean_word_length': 3.7082152974504248, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '600135', 'license': 'MIT', 'n_tokens_mistral': 575, 'n_tokens_neox': 567, 'n_words': 169, 'path': 'notebook/ReadFiles.ipynb', 'repo_name': 'pamamu/S2T_AudioProcess', 'size': '1661'}