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

पायथन में डिजाइन फाइल सिस्टम


मान लीजिए कि हमें एक फाइल सिस्टम डिजाइन करना है जो इन दो कार्यों को प्रदान करता है -

  1. createPath(path, value) - यह एक नया पथ बनाता है और यदि संभव हो तो इसे एक मान जोड़ता है और सही लौटाता है। यदि पथ पहले से मौजूद है या उसका मूल पथ मौजूद नहीं है तो यह गलत लौटाता है।
  2. get(path) - यह पथ से जुड़े मान को ढूंढता है या यदि पथ मौजूद नहीं है तो -1 लौटाता है।

पथ का प्रारूप प्रपत्र के एक या अधिक संयोजित तार होते हैं - (फॉरवर्ड स्लैश) / उसके बाद एक या अधिक लोअरकेस अंग्रेजी अक्षर। उदाहरण के लिए, /प्रोग्रामिंग और /प्रोग्रामिंग/समस्याएं वैध पथ हैं जबकि एक खाली स्ट्रिंग और / नहीं हैं। यहां हमें इन दो कार्यों को लागू करना है।

इसलिए इनपुट के रूप में, यदि हम एक फाइल-सिस्टम बनाते हैं, तो ['/a', 1] का उपयोग करके एक पथ बनाएं, फिर पैरामीटर ['/a'] के साथ get() का उपयोग करने के बाद, आउटपुट 1 होगा। पी>

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

  • मानचित्र को परिभाषित करें d
  • क्रिएटपाथ विधि पथ और मान लेगी, यह इस तरह कार्य करेगी -
  • p :='/' से विभाजित पथ के घटकों की सूची
  • x :=d
  • i के लिए 1 से p - 1 की लंबाई के बीच
    • अगर p[i] x में मौजूद नहीं है, तो झूठी वापसी करें
    • x :=x[p[i]][1]
  • यदि p का अंतिम अवयव x में है, तो असत्य लौटाएं
  • x[p का अंतिम तत्व] :=v और खाली मानचित्र वाली एक सूची
  • सही लौटें
  • प्राप्त () विधि पथ ले रही है
  • x :=d
  • p :='/' से विभाजित पथ के घटकों की सूची
  • i के लिए 1 से p - 1 की लंबाई के बीच
    • अगर p[i] x में मौजूद नहीं है, तो -1 लौटाएं
    • x :=x[p[i]][1]
  • यदि p का अंतिम तत्व x में है, तो x [p का अंतिम तत्व] [0] लौटाएं, अन्यथा -1 लौटाएं

उदाहरण (पायथन)

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

class FileSystem(object):
   def __init__(self):
      self.d = {}
   def create(self, p, v):
      p = p.split("/")
      x = self.d
      for i in range(1,len(p)-1):
         if p[i] not in x:
            return False
         x = x[p[i]][1]
      if p[-1] in x:
         return False
      x[p[-1]] = [v,{}]
      return True
   def get(self, p):
      x = self.d
      p = p.split("/")
      for i in range(1,len(p)-1):
         if p[i] not in x:
            return -1
         x= x[p[i]][1]
      if p[-1] in x:
         return x[p[-1]][0]
      else:
         return -1
ob = FileSystem()
print(ob.create("/a", 1))
print(ob.get("/a"))

इनपुट

Initialize the object, then call createPath(“/a”, 1) and get(“/a”)

आउटपुट

True
1

  1. Askopenfile () पायथन टिंकर में फ़ंक्शन

    पायथन प्रोग्राम द्वारा उपयोग की जाने वाली फ़ाइल के पथ को हार्ड कोडिंग करने के बजाय, हम उपयोगकर्ता को GUI का उपयोग करके ओएस फ़ोल्डर संरचना को ब्राउज़ करने की अनुमति दे सकते हैं और उपयोगकर्ता को फ़ाइल का चयन करने दे सकते हैं। यह टिंकर मॉड्यूल का उपयोग करके हासिल किया जाता है जिसमें हम एक कैनवास परिभाष

  1. पायथन में फाइल ऑब्जेक्ट्स?

    पायथन में, जब भी हम फ़ाइलों को पढ़ने या लिखने की कोशिश करते हैं, तो हमें किसी पुस्तकालय को आयात करने की आवश्यकता नहीं होती है क्योंकि इसे मूल रूप से संभाला जाता है। फ़ाइल ऑब्जेक्ट प्राप्त करने के लिए सबसे पहले हम बिल्ट-इन ओपन फ़ंक्शन का उपयोग करेंगे। खुला फ़ंक्शन एक फ़ाइल खोलता है और एक फ़ाइल ऑब्ज

  1. पायथन में जंक फाइल ऑर्गनाइज़र?

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