जब रिलेशनल डेटाबेस समाधान का उपयोग करने की आवश्यकता नहीं होती है, तो पाइथन के मानक पुस्तकालय में शेल्व मॉड्यूल लगातार डेटा भंडारण के लिए एक सरल लेकिन प्रभावी उपकरण है। इस मॉड्यूल में परिभाषित शेल्फ ऑब्जेक्ट डिक्शनरी जैसी वस्तु है जो डिस्क फ़ाइल में लगातार संग्रहीत होती है। यह UNIX जैसे सिस्टम पर dbm डेटाबेस के समान एफाइल बनाता है। इस विशेष डिक्शनरी ऑब्जेक्ट में केवल स्ट्रिंग डेटा प्रकार का उपयोग कुंजी के रूप में किया जा सकता है, जबकि कोई भी पिक करने योग्य वस्तु मूल्य के रूप में काम कर सकती है।
शेल्व मॉड्यूल तीन वर्गों को निम्नानुसार परिभाषित करता है -
<टेबल> <थहेड>यह शेल्फ कार्यान्वयन के लिए आधार वर्ग है। इसे ताना जैसी वस्तु के साथ आरंभ किया जाता है।
यह शेल्फ क्लास का एक उपवर्ग है। इसके कंस्ट्रक्टर को पास की गई तानाशाही वस्तु को पहले (), अगले (), पिछले (), अंतिम () और सेट_लोकेशन () विधियों का समर्थन करना चाहिए।
यह शेल्फ़ का एक उपवर्ग भी है, लेकिन एक फ़ाइल नाम को इसके कंस्ट्रक्टर के पैरामीटर के रूप में स्वीकार करता है, न कि तानाशाही वस्तु के।
शेल्फ़ ऑब्जेक्ट बनाने का सबसे आसान तरीका शेल्व मॉड्यूल में परिभाषित ओपन () फ़ंक्शन का उपयोग करना है जो एक DbfilenameShelf ऑब्जेक्ट लौटाता है।
open(filename, flag = 'c', protocol=None, writeback = False)
फ़ाइल नाम पैरामीटर बनाए गए डेटाबेस को सौंपा गया है।
फ़्लैग पैरामीटर के लिए डिफ़ॉल्ट मान रीड/राइट एक्सेस के लिए 'c' है। अन्य झंडे हैं 'w' (केवल लिखें) 'r' (केवल पढ़ने के लिए) और 'n' (पढ़ने/लिखने के साथ नया)
प्रोटोकॉल पैरामीटर इंगित करता है कि अचार प्रोटोकॉल राइटबैक पैरामीटर डिफ़ॉल्ट रूप से गलत है। यदि सही पर सेट किया जाता है, तो एक्सेस की गई प्रविष्टियां कैश की जाती हैं। प्रत्येक एक्सेस कॉल सिंक () और क्लोज () ऑपरेशन इसलिए प्रक्रिया धीमी हो सकती है।
निम्नलिखित कोड एक डेटाबेस बनाता है और उसमें शब्दकोश प्रविष्टियों को संग्रहीत करता है।
import shelve s = shelve.open("test") s['name'] = "Ajay" s['age'] = 23 s['marks'] = 75 s.close()
यह वर्तमान निर्देशिका में test.dir फ़ाइल बनाएगा और कुंजी-मूल्य डेटा को हैशेड रूप में संग्रहीत करेगा। शेल्फ़ ऑब्जेक्ट में निम्नलिखित विधियाँ उपलब्ध हैं -
<टेबल> <थहेड>लगातार तानाशाही वस्तु को सिंक्रनाइज़ और बंद करें।
यदि शेल्फ़ को राइटबैक ट्रू पर सेट करके खोला गया था, तो कैशे में सभी प्रविष्टियाँ वापस लिखें।
कुंजी के साथ जुड़ा मूल्य लौटाता है
टुपल्स की सूची - प्रत्येक टपल कुंजी मूल्य जोड़ी है
शेल्फ चाबियों की सूची
निर्दिष्ट कुंजी हटाएं और संबंधित मान वापस करें।
किसी अन्य dict/iterable से शेल्फ़ अपडेट करें
शेल्फ मूल्यों की सूची
शेल्फ़ में किसी विशेष कुंजी के मूल्य तक पहुँचने के लिए।
>>> s=shelve.open('test') >>> s['age'] 23 >>> s['age']=25 >>> s.get('age') 25
आइटम (), कुंजियाँ () और मान () विधियाँ दृश्य वस्तुओं को लौटाती हैं।
>>> list(s.items()) [('name', 'Ajay'), ('age', 25), ('marks', 75)] >>> list(s.keys()) ['name', 'age', 'marks'] >>> list(s.values()) ['Ajay', 25, 75]
शेल्फ से की-वैल्यू पेयर निकालने के लिए
>>> s.pop('marks') 75 >>> list(s.items()) [('name', 'Ajay'), ('age', 25)]
ध्यान दें कि की-वैल्यू जोड़ी मार्क्स-75 को हटा दिया गया है।
किसी अन्य शब्दकोश के आइटम्स को शेल्फ यूज़ अपडेट () पद्धति के साथ मर्ज करने के लिए
>>> d={'salary':10000, 'designation':'manager'} >>> s.update(d) >>> list(s.items()) [('name', 'Ajay'), ('age', 25), ('salary', 10000), ('designation', 'manager')]
इस लेख में हमने शेल्व मॉड्यूल के बारे में सीखा जो लगातार डिक्शनरी ऑब्जेक्ट को स्टोर करने के लिए सुविधाजनक तंत्र प्रदान करता है।