Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन का उपयोग करके फ़ाइल नामों को अद्वितीय बनाने का कार्यक्रम

मान लीजिए कि हमारे पास नाम नामक n स्ट्रिंग्स की एक सरणी है। हमें फाइल सिस्टम में n निर्देशिकाएं बनानी होंगी जैसे कि, ith मिनट में, हम नाम के साथ एक निर्देशिका बनाएंगे [i]। दो फाइलों का एक ही नाम नहीं हो सकता है, यदि हम एक डुप्लिकेट निर्देशिका नाम दर्ज करते हैं तो सिस्टम के नाम के साथ (के) के रूप में एक प्रत्यय जोड़ा जाएगा, यहां, के सबसे छोटा सकारात्मक पूर्णांक है, जिससे प्राप्त नाम अद्वितीय रहता है। हमें लंबाई n के स्ट्रिंग्स की एक सरणी ढूंढनी होगी जहां ans[i] वास्तविक नाम है जो ith निर्देशिका को असाइन किया जाएगा जब हम इसे बनाएंगे।

इसलिए, यदि इनपुट नाम =["my_dir", "my_dir (1)", "my_new_dir", "my_new_dir", "abc"] जैसा है, तो आउटपुट ['my_dir', 'my_dir(1)' होगा। , 'my_new_dir', 'my_new_dir(1)', 'abc'] क्योंकि "my_new_dir" पहले से ही एक बार मौजूद है, फिर पहले वाले के बाद एक (1) जोड़ा जाता है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • dic :=एक नया नक्शा, अगर कोई कुंजी मौजूद नहीं है तो 0

  • रेस :=एक नई सूची

  • नामों में प्रत्येक नाम के लिए, करें

    • अगर नाम dic में नहीं है, तो

      • डीआईसी [नाम]:=डीआईसी [नाम] + 1

      • रेस के अंत में नाम डालें

    • अन्यथा,

      • नया नाम:=नाम संक्षिप्त करें '(' concatenate dic [name] concatenate ')'

      • जबकि नया नाम dic में मौजूद है, करें

        • डीआईसी [नाम]:=डीआईसी [नाम] + 1

        • नया नाम:=नाम संक्षिप्त करें '(' concatenate dic [name] concatenate ')'

      • डीआईसी [नया नाम] :=1

      • रेस के अंत में नया नाम डालें

  • रिटर्न रेस

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

from collections import defaultdict
def solve(names):
   dic = defaultdict(int)
   res = []
   for name in names:
      if name not in dic:
         dic[name] += 1
         res.append(name)
      else:
         newname = name +'(' + str(dic[name]) + ')'
         while newname in dic:
            dic[name] += 1
            newname = name +'(' + str(dic[name]) + ')'
         dic[newname] = 1
         res.append(newname)
   return res
names = ["my_dir","my_dir(1)","my_new_dir","my_new_dir","abc"]
print(solve(names))

इनपुट

["my_dir","my_dir(1)","my_new_dir","my_new_dir","abc"]

आउटपुट

['my_dir', 'my_dir(1)', 'my_new_dir', 'my_new_dir(1)', 'abc']

  1. Python का उपयोग करके PDF को CSV में बदलें

    पायथन अपने विशाल संकुल पुस्तकालय के लिए जाना जाता है। पुस्तकालयों की सहायता से, हम देखेंगे कि PDF को CSV फ़ाइल में कैसे परिवर्तित किया जाए। CSV फ़ाइल कुछ और नहीं बल्कि डेटा का एक संग्रह है, जिसे पंक्तियों और स्तंभों के एक सेट के साथ तैयार किया गया है। PDF को CSV में बदलने के लिए Python लाइब्रेरी में

  1. पायथन में भारतीय ध्वज बनाने का कार्यक्रम

    ग्राफ बनाने के लिए पायथन के पुस्तकालयों में बहुत व्यापक विशेषताएं हैं जो हमें न केवल चार्ट दे सकती हैं बल्कि हमें झंडे जैसे अन्य आरेखों को खींचने के लिए लचीलापन भी दे सकती हैं। उस अर्थ में उन मॉड्यूलों में कलात्मक स्पर्श होता है। इस लेख में हम देखेंगे कि numpy और matplotlib पुस्तकालयों का उपयोग करके

  1. वेबसाइट अवरोधक पायथन का उपयोग कर

    यदि आप एक बड़ी आईटी कंपनी में काम कर रहे हैं तो आप देख सकते हैं कि उनकी कुछ वेबसाइटें अवरुद्ध हैं, खासकर सोशल नेटवर्किंग साइट्स जैसे फेसबुक, यूट्यूब, इंस्टाग्राम इत्यादि। कुछ वेबसाइट को ब्लॉक करने के लिए थर्ड-पार्टी एप्लिकेशन का उपयोग करने के बजाय, हम अपना खुद का कस्टम एप्लिकेशन विकसित कर सकते हैं