Rinomina di un File in PyTown

Nel mondo virtuale di PyTown, ogni documento o file digitale è memorizzato in directory e sottodirectory rappresentate come dizionari annidati. Il sindaco della città, il signor CeePy, ha la grande responsabilità di mantenere tutti questi documenti organizzati, correttamente nominati e facilmente accessibili. Un giorno, il signor CeePy si accorse che un file molto importante era stato nominato in modo errato e doveva correggerlo con urgenza.
Il tuo compito è aiutare il signor CeePy scrivendo un programma Python ricorsivo per cercare questo file specifico nella struttura di directory rappresentata dal dizionario annidato e rinominarlo se viene trovato. In questo contesto, le chiavi rappresentano i nomi delle cartelle o dei file, e i valori sono o dizionari che rappresentano le sottocartelle o stringhe che rappresentano le estensioni dei file.
La prima linea dell'input è la struttura del dizionario annidato. Questo dizionario rappresenta le directory come chiavi e come valori o un dizionario o una stringa. Le stringhe sono estensioni di file che, quando combinate con le loro chiavi (nomi di file), formano il nome completo del file.
La seconda linea dell'input è il nome del file esistente (con la sua estensione) che deve essere trovato e rinominato.
La terza linea dell'input è il nuovo nome a cui il file esistente deve essere rinominato.
Il programma dovrebbe restituire la struttura del dizionario annidato modificata con il file rinominato. Se il file non viene trovato nella struttura delle directory, il programma dovrebbe stampare File not found.
Input
Output
{"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