पायथन में वस्तुओं को बचाने के लिए शेल्व का उपयोग करना

शेल्व वस्तु दृढ़ता के लिए एक शक्तिशाली पायथन मॉड्यूल है। जब आप किसी ऑब्जेक्ट को आश्रय देते हैं, तो आपको एक कुंजी प्रदान करनी चाहिए जिसके द्वारा ऑब्जेक्ट वैल्यू ज्ञात हो। इस तरह, शेल्व फ़ाइल संग्रहीत मूल्यों का एक डेटाबेस बन जाती है, जिनमें से किसी भी समय किसी भी समय पहुँचा जा सकता है।

पाइथन में शेल्व के लिए नमूना कोड

किसी ऑब्जेक्ट को प्राप्त करने के लिए, पहले मॉड्यूल को आयात करें और फिर ऑब्जेक्ट वैल्यू को निम्नानुसार असाइन करें:

 आयात आश्रय 
डेटाबेस = shelve.open (फ़ाइल नाम .suffix)
वस्तु = वस्तु ()
डेटाबेस ['कुंजी'] = वस्तु

यदि आप स्टॉक का डेटाबेस रखना चाहते हैं, उदाहरण के लिए, आप निम्नलिखित कोड को अनुकूलित कर सकते हैं:

 आयात आश्रय 
stockvalues_db = shelve.open ('stockvalues.db')
object_ibm = मान।
stockvalues_db ['ibm'] = object_ibm
object_vmw = मान। mww ()
stockvalues_db ['vmw'] = object_vmw
object_db = Values.db ()
stockvalues_db ['db'] = object_db

एक "शेयर मान ..d" पहले से ही खोला गया है, आपको इसे फिर से खोलने की आवश्यकता नहीं है। इसके बजाय, आप एक समय में कई डेटाबेस खोल सकते हैं, प्रत्येक वसीयत में लिख सकते हैं और छोड़ सकते हैं

instagram viewer
अजगर कार्यक्रम समाप्त होने पर उन्हें बंद करने के लिए। उदाहरण के लिए, आप प्रत्येक प्रतीक के लिए नामों का एक अलग डेटाबेस रख सकते हैं, जो पूर्ववर्ती कोड में निम्नलिखित है:

 ## यह मानते हुए कि पहले से ही आयातित है 
stocknames_db = shelve.open ('stocknames.db')
objectname_ibm = Names.ibm ()
stocknames_db ['ibm'] = objectname_ibm
objectname_vmw = Names.vmw ()
stocknames_db ['vmw'] = objectname_vmw
objectname_db = Names.db ()
stocknames_db ['db'] = objectname_db

ध्यान दें कि डेटाबेस फ़ाइल के नाम या प्रत्यय में कोई भी परिवर्तन एक अलग फ़ाइल बनाता है और इसलिए, एक अलग डेटाबेस।

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

फ़ाइल में डेटा लिखे जाने के बाद, इसे किसी भी समय वापस बुलाया जा सकता है। यदि आप बाद के सत्र में डेटा को पुनर्स्थापित करना चाहते हैं, तो आप फ़ाइल को फिर से खोलते हैं। यदि यह एक ही सत्र है, तो बस मूल्य याद रखें; टांड़ डेटाबेस फ़ाइलें रीड-राइट मोड में खोले जाते हैं। इसे प्राप्त करने के लिए मूल वाक्यविन्यास निम्नलिखित है:

 आयात आश्रय 
डेटाबेस = shelve.open (फ़ाइल नाम .suffix)
ऑब्जेक्ट = डेटाबेस ['कुंजी']

तो पूर्ववर्ती उदाहरण से एक नमूना पढ़ा जाएगा:

 आयात आश्रय 
stockname_file = shelve.open ('stocknames.db')
stockname_ibm = stockname_file ['ibm']
stockname_db = stockname_file ['db']

शेल्व के साथ विचार

यह नोट करना महत्वपूर्ण है कि डेटाबेस तब तक खुला रहता है जब तक आप इसे बंद नहीं करते (या जब तक कि कार्यक्रम समाप्त नहीं हो जाता)। इसलिए, यदि आप किसी भी आकार का प्रोग्राम लिख रहे हैं, तो आप इसके साथ काम करने के बाद डेटाबेस को बंद करना चाहते हैं। अन्यथा, पूरा डेटाबेस (न केवल जो मूल्य आप चाहते हैं) स्मृति में बैठता है और खपत करता है कंप्यूटिंग संसाधन.

शेल्व फ़ाइल को बंद करने के लिए, निम्नलिखित सिंटैक्स का उपयोग करें:

 database.close () 

यदि उपरोक्त सभी कोड उदाहरणों को एक कार्यक्रम में शामिल किया गया था, तो हमारे पास इस समय दो डेटाबेस फाइलें खुली होंगी और मेमोरी की खपत होगी। इसलिए, पिछले उदाहरण में स्टॉक नामों को पढ़ने के बाद, आप तब प्रत्येक डेटाबेस को बदले में बंद कर सकते हैं:

 stockvalues_db.close () 
stocknames_db.close ()
stockname_file.close ()