Desafio: Busca Recursiva de Arquivos
Trabalhando com Dicionários Aninhados
Em Python, dicionários podem conter outros dicionários. Isso é útil para representar estruturas hierárquicas como um sistema de arquivos.
Neste caso:
- As chaves são nomes (de arquivos ou pastas);
- Se o valor for a string
"file"
, significa que é um arquivo; - Se o valor for outro dicionário, significa que é uma pasta.
Utilize items()
para iterar por todos os pares chave-valor:
123456789101112file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
- Utilize
isinstance(content, dict)
para verificar se um valor é ele mesmo um dicionário (ou seja, uma pasta, não um arquivo):
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
Imagine a necessidade de verificar se um arquivo específico existe dentro de uma estrutura de dicionário aninhado que representa um sistema de arquivos. Implemente uma função file_exists
que navega recursivamente por pastas (objetos do tipo dicionário) e busca por um arquivo (representado pela string "file"
). Retorne True
se o arquivo for encontrado; caso contrário, retorne False
.
- Utilize um laço
for
para iterar por todos os elementos do dicionáriofile_system
usando o métodoitems()
. Isso recupera a chave (name
) e o valor (content
). - Verifique se
content
é um arquivo (ou seja, a string"file"
) e sename
corresponde atarget
(o nome do arquivo que está sendo buscado). - Se ambas as condições forem atendidas, retorne
True
, indicando que o arquivo foi encontrado. - Se o conteúdo não for um arquivo, verifique se é uma pasta.
Utilize a função
isinstance()
, passandocontent
como o primeiro argumento edict
como o segundo (o que verifica se o elemento é um dicionário). - Se
content
for uma pasta, chamefile_exists
recursivamente com os parâmetros necessários para continuar a busca dentro dela. - Se a chamada recursiva retornar
True
, o arquivo foi encontrado, então retorneTrue
. - Se nenhuma correspondência for encontrada após verificar todas as pastas e arquivos, retorne
False
.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 4.35
Desafio: Busca Recursiva de Arquivos
Deslize para mostrar o menu
Trabalhando com Dicionários Aninhados
Em Python, dicionários podem conter outros dicionários. Isso é útil para representar estruturas hierárquicas como um sistema de arquivos.
Neste caso:
- As chaves são nomes (de arquivos ou pastas);
- Se o valor for a string
"file"
, significa que é um arquivo; - Se o valor for outro dicionário, significa que é uma pasta.
Utilize items()
para iterar por todos os pares chave-valor:
123456789101112file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
- Utilize
isinstance(content, dict)
para verificar se um valor é ele mesmo um dicionário (ou seja, uma pasta, não um arquivo):
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
Imagine a necessidade de verificar se um arquivo específico existe dentro de uma estrutura de dicionário aninhado que representa um sistema de arquivos. Implemente uma função file_exists
que navega recursivamente por pastas (objetos do tipo dicionário) e busca por um arquivo (representado pela string "file"
). Retorne True
se o arquivo for encontrado; caso contrário, retorne False
.
- Utilize um laço
for
para iterar por todos os elementos do dicionáriofile_system
usando o métodoitems()
. Isso recupera a chave (name
) e o valor (content
). - Verifique se
content
é um arquivo (ou seja, a string"file"
) e sename
corresponde atarget
(o nome do arquivo que está sendo buscado). - Se ambas as condições forem atendidas, retorne
True
, indicando que o arquivo foi encontrado. - Se o conteúdo não for um arquivo, verifique se é uma pasta.
Utilize a função
isinstance()
, passandocontent
como o primeiro argumento edict
como o segundo (o que verifica se o elemento é um dicionário). - Se
content
for uma pasta, chamefile_exists
recursivamente com os parâmetros necessários para continuar a busca dentro dela. - Se a chamada recursiva retornar
True
, o arquivo foi encontrado, então retorneTrue
. - Se nenhuma correspondência for encontrada após verificar todas as pastas e arquivos, retorne
False
.
Solução
Obrigado pelo seu feedback!
Awesome!
Completion rate improved to 4.35single