Renombrando un Archivo en PyTown

En el mundo virtual de PyTown, cada documento o archivo digital se almacena en directorios y subdirectorios que se representan como diccionarios anidados. El alcalde del pueblo, el Sr. CeePy, tiene la gran responsabilidad de mantener todos estos documentos organizados, nombrados correctamente y fácilmente accesibles. Un día, el Sr. CeePy se dio cuenta de que un archivo muy importante estaba mal nombrado y necesita corregirlo con urgencia.
Tu tarea es ayudar al Sr. CeePy escribiendo un programa recursivo en Python que busque este archivo específico en la estructura de directorios representada por diccionarios anidados y lo renombre si lo encuentra. Aquí, las claves representan nombres de carpetas o de archivos, y los valores son diccionarios que representan subcarpetas o cadenas que representan extensiones de archivos.
La primera línea de la entrada es la estructura de diccionario anidado. Este diccionario representa directorios como claves y como valores tiene un diccionario o una cadena. Las cadenas son extensiones de archivo que, al combinarse con sus claves (nombres de archivo), forman el nombre completo del archivo.
La segunda línea de la entrada es el nombre del archivo existente (con su extensión) que necesita ser encontrado y renombrado.
La tercera línea de la entrada es el nuevo nombre que se le debe asignar al archivo existente.
El programa debe devolver la estructura de diccionario anidado modificada con el archivo renombrado. Si el archivo no se encuentra en la estructura de directorios, el programa debe imprimir File not found.
Entrada
Salida
{"home": {"documents": {"report": ".docx", "data": ".csv", "analysis": ".txt"}, "pictures": {"beach": ".jpg", "portrait": ".png"}}, "desktop": {"important": ".pdf", "todo": ".txt"}} important.pdf urgent.pdf
{"home": {"documents": {"report": ".docx", "data": ".csv", "analysis": ".txt"}, "pictures": {"beach": ".jpg", "portrait": ".png"}}, "desktop": {"urgent": ".pdf", "todo": ".txt"}}
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue