Sección 5. Capítulo 3
single
Desafío: Búsqueda Recursiva de Archivos
Desliza para mostrar el menú
Trabajo con diccionarios anidados
Los diccionarios pueden almacenar otros diccionarios, lo cual es útil para representar datos jerárquicos como un sistema de archivos.
- Las claves son nombres de archivos o carpetas;
"file"significa que el elemento es un archivo;- Un diccionario anidado significa que el elemento es una carpeta.
Utilizar items() para iterar sobre los pares clave–valor.
1234567file_system = { 'home': {'resume.pdf': 'file', 'notes.txt': 'file'}, 'etc': {'config.yaml': 'file'} } for name, content in file_system.items(): print(name, '->', content)
Utilizar isinstance(content, dict) para comprobar si un valor representa una carpeta:
12345678910file_system = { 'home': {'resume.pdf': 'file'}, 'config.yaml': 'file' } for name, content in file_system.items(): if isinstance(content, dict): print(name, 'is a folder') else: print(name, 'is a file')
Tarea
Desliza para comenzar a programar
Para verificar si un archivo específico existe en un diccionario anidado, implementa una función recursiva file_exists:
- Recorre el diccionario usando
items(). - Si
contentes'file'ynamecoincide contarget, devuelveTrue. - Si
contentes una carpeta (isinstance(content, dict)), llama recursivamente afile_exists. - Si la llamada recursiva devuelve
True, propaga elTrue. - Si no hay coincidencias después de revisar todos los niveles, devuelve
False.
Solución
¿Todo estuvo claro?
¡Gracias por tus comentarios!
Sección 5. Capítulo 3
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla