PyTown में फ़ाइल का नाम बदलना
PyTown की आभासी दुनिया में, हर डिजिटल दस्तावेज़ या फ़ाइल निर्देशिकाओं और उप-निर्देशिकाओं में संग्रहीत है, जो नेस्टेड डिक्शनरी के रूप में प्रदर्शित होती हैं। शहर के मेयर, श्री CeePy, की ज़िम्मेदारी है कि वे इन सभी दस्तावेज़ों को सुव्यवस्थित रखें, उनके सही नाम रखें, और उन्हें आसानी से उपलब्ध कराएं। एक दिन, श्री CeePy को एहसास हुआ कि एक बहुत महत्वपूर्ण फ़ाइल का नाम गलत है, और उन्हें इसे तुरंत ठीक करना है।
आपका काम है कि आप एक पुनरावर्ती (recursive) Python प्रोग्राम लिखकर श्री CeePy की मदद करें, जो नेस्टेड डिक्शनरी निर्देशिका संरचना में इस विशेष फ़ाइल को खोजे और मिलने पर उसका नाम बदले। यहाँ, कीज़ फ़ोल्डर नाम या फ़ाइल नाम हैं, और वैल्यूज़ या तो उप-फ़ोल्डर्स को दर्शाने वाली डिक्शनरी हैं या फ़ाइल एक्सटेंशन को दर्शाने वाली स्ट्रिंग्स।
इनपुट की पहली पंक्ति नेस्टेड डिक्शनरी संरचना है। यह डिक्शनरी निर्देशिकाओं को कीज़ के रूप में और वैल्यूज़ के रूप में या तो एक डिक्शनरी या एक स्ट्रिंग के रूप में दर्शाती है। स्ट्रिंग्स फ़ाइल एक्सटेंशन हैं, जो अपने कीज़ (फ़ाइलनाम) के साथ मिलकर पूर्ण फ़ाइल नाम बनाती हैं।
इनपुट की दूसरी पंक्ति मौजूदा फ़ाइलनाम (उसके एक्सटेंशन सहित) है, जिसे खोजकर नाम बदलना है।
इनपुट की तीसरी पंक्ति नया फ़ाइलनाम है, जिसका उपयोग मौजूदा फ़ाइल का नाम बदलने के लिए किया जाना है।
प्रोग्राम को बदले हुए फ़ाइल के साथ संशोधित नेस्टेड डिक्शनरी संरचना को रिटर्न करना चाहिए। यदि फ़ाइल निर्देशिका संरचना में नहीं मिलती है, तो प्रोग्राम को
File not found
प्रिंट करना चाहिए।इनपुट | आउटपुट |
{"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