Desafío: Búsqueda Recursiva de Archivos
Trabajo con diccionarios anidados
En Python, los diccionarios pueden contener otros diccionarios. Esto es útil para representar estructuras jerárquicas como un sistema de archivos.
En este caso:
- Las claves son nombres (de archivos o carpetas);
- Si el valor es la cadena
"file"
, significa que es un archivo; - Si el valor es otro diccionario, significa que es una carpeta.
Utiliza items()
para iterar sobre todos los pares clave-valor:
123456789101112file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
- Utiliza
isinstance(content, dict)
para comprobar si un valor es en sí mismo un diccionario (es decir, una carpeta, no un archivo):
123456789101112file_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")
Swipe to start coding
Imagina la necesidad de verificar si un archivo existe dentro de una estructura de diccionario anidado que representa un sistema de archivos. Implementa una función file_exists
que navegue recursivamente a través de carpetas (objetos diccionario) y busque un archivo (representado por la cadena "file"
). Devuelve True
si se encuentra el archivo; de lo contrario, devuelve False
.
- Utiliza un bucle
for
para iterar sobre todos los elementos del diccionariofile_system
usando el métodoitems()
. Esto recupera la clave (name
) y el valor (content
). - Verifica si
content
es un archivo (es decir, la cadena"file"
) y siname
coincide contarget
(el nombre del archivo que se está buscando). - Si se cumplen ambas condiciones, devuelve
True
, indicando que se ha encontrado el archivo. - Si el contenido no es un archivo, verifica si es una carpeta.
Utiliza la función
isinstance()
, pasandocontent
como el primer argumento ydict
como el segundo (lo que comprueba si el elemento es un diccionario). - Si
content
es una carpeta, llama recursivamente afile_exists
con los parámetros necesarios para continuar la búsqueda dentro de ella. - Si la llamada recursiva devuelve
True
, el archivo ha sido encontrado, por lo que devuelveTrue
. - Si no se encuentran coincidencias después de revisar todas las carpetas y archivos, devuelve
False
.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 4.35
Desafío: Búsqueda Recursiva de Archivos
Desliza para mostrar el menú
Trabajo con diccionarios anidados
En Python, los diccionarios pueden contener otros diccionarios. Esto es útil para representar estructuras jerárquicas como un sistema de archivos.
En este caso:
- Las claves son nombres (de archivos o carpetas);
- Si el valor es la cadena
"file"
, significa que es un archivo; - Si el valor es otro diccionario, significa que es una carpeta.
Utiliza items()
para iterar sobre todos los pares clave-valor:
123456789101112file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
- Utiliza
isinstance(content, dict)
para comprobar si un valor es en sí mismo un diccionario (es decir, una carpeta, no un archivo):
123456789101112file_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")
Swipe to start coding
Imagina la necesidad de verificar si un archivo existe dentro de una estructura de diccionario anidado que representa un sistema de archivos. Implementa una función file_exists
que navegue recursivamente a través de carpetas (objetos diccionario) y busque un archivo (representado por la cadena "file"
). Devuelve True
si se encuentra el archivo; de lo contrario, devuelve False
.
- Utiliza un bucle
for
para iterar sobre todos los elementos del diccionariofile_system
usando el métodoitems()
. Esto recupera la clave (name
) y el valor (content
). - Verifica si
content
es un archivo (es decir, la cadena"file"
) y siname
coincide contarget
(el nombre del archivo que se está buscando). - Si se cumplen ambas condiciones, devuelve
True
, indicando que se ha encontrado el archivo. - Si el contenido no es un archivo, verifica si es una carpeta.
Utiliza la función
isinstance()
, pasandocontent
como el primer argumento ydict
como el segundo (lo que comprueba si el elemento es un diccionario). - Si
content
es una carpeta, llama recursivamente afile_exists
con los parámetros necesarios para continuar la búsqueda dentro de ella. - Si la llamada recursiva devuelve
True
, el archivo ha sido encontrado, por lo que devuelveTrue
. - Si no se encuentran coincidencias después de revisar todas las carpetas y archivos, devuelve
False
.
Solución
¡Gracias por tus comentarios!
Awesome!
Completion rate improved to 4.35single