Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Búsqueda Recursiva de Archivos | Recursión y Funciones Lambda
Tutorial de Funciones en Python

Desliza para mostrar el menú

book
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.

Para navegar un diccionario:

Utiliza items() para iterar a través de todos los pares clave-valor:

123456789101112
file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
copy
  • Utiliza isinstance(content, dict) para comprobar si un valor es en sí mismo un diccionario (es decir, una carpeta, no un archivo):

123456789101112
file_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")
copy
Tarea

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.

  1. Utiliza un bucle for para iterar sobre todos los elementos del diccionario file_system usando el método items(). Esto recupera la clave (name) y el valor (content).
  2. Verifica si content es un archivo (es decir, la cadena "file") y si name coincide con target (el nombre del archivo que se está buscando).
  3. Si se cumplen ambas condiciones, devuelve True, indicando que se ha encontrado el archivo.
  4. Si el contenido no es un archivo, verifica si es una carpeta. Utiliza la función isinstance(), pasando content como primer argumento y dict como segundo (lo que comprueba si el elemento es un diccionario).
  5. Si content es una carpeta, llama recursivamente a file_exists con los parámetros necesarios para continuar la búsqueda dentro de ella.
  6. Si la llamada recursiva devuelve True, el archivo ha sido encontrado, por lo que devuelve True.
  7. Si no se encuentran coincidencias después de revisar todas las carpetas y archivos, devuelve False.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 2

Pregunte a AI

expand
ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

book
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.

Para navegar un diccionario:

Utiliza items() para iterar a través de todos los pares clave-valor:

123456789101112
file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
copy
  • Utiliza isinstance(content, dict) para comprobar si un valor es en sí mismo un diccionario (es decir, una carpeta, no un archivo):

123456789101112
file_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")
copy
Tarea

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.

  1. Utiliza un bucle for para iterar sobre todos los elementos del diccionario file_system usando el método items(). Esto recupera la clave (name) y el valor (content).
  2. Verifica si content es un archivo (es decir, la cadena "file") y si name coincide con target (el nombre del archivo que se está buscando).
  3. Si se cumplen ambas condiciones, devuelve True, indicando que se ha encontrado el archivo.
  4. Si el contenido no es un archivo, verifica si es una carpeta. Utiliza la función isinstance(), pasando content como primer argumento y dict como segundo (lo que comprueba si el elemento es un diccionario).
  5. Si content es una carpeta, llama recursivamente a file_exists con los parámetros necesarios para continuar la búsqueda dentro de ella.
  6. Si la llamada recursiva devuelve True, el archivo ha sido encontrado, por lo que devuelve True.
  7. Si no se encuentran coincidencias después de revisar todas las carpetas y archivos, devuelve False.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 2
Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
Lamentamos que algo salió mal. ¿Qué pasó?
some-alt