जब भी आपको उपयोगकर्ता सत्रों के बीच दृढ़ता की आवश्यकता होती है, तब अचार, जो कि पायथन लाइब्रेरी का हिस्सा है, एक महत्वपूर्ण मॉड्यूल है। एक मॉड्यूल के रूप में, अचार प्रक्रियाओं के बीच अजगर वस्तुओं की बचत के लिए प्रदान करता है।
आप एक के लिए प्रोग्रामिंग कर रहे हैं या नहीं डेटाबेस, खेल, मंच, या कुछ अन्य अनुप्रयोग जो सत्रों के बीच जानकारी को सहेजना चाहिए, अचार पहचानकर्ताओं और सेटिंग्स को बचाने के लिए उपयोगी है। अचार मॉड्यूल डेटा प्रकारों जैसे कि बूलियन, स्ट्रिंग्स और बाइट सरणियों, सूचियों, शब्दकोशों, कार्यों, और बहुत कुछ को स्टोर कर सकता है।
ध्यान दें: अचार की अवधारणा को क्रमांकन, मार्शलिंग और चपटे के रूप में भी जाना जाता है। हालाँकि, पॉइंट हमेशा एक ही होता है - किसी ऑब्जेक्ट को बाद में पुनर्प्राप्ति के लिए किसी फ़ाइल में सहेजने के लिए। अचार वस्तु को बाइट की एक लंबी धारा के रूप में लिखकर इसे पूरा करता है।
पायथन में अचार उदाहरण कोड
किसी फ़ाइल पर ऑब्जेक्ट लिखने के लिए, आप निम्न सिंटैक्स में एक कोड का उपयोग करते हैं:
आयात अचार
वस्तु = वस्तु ()
फ़ाइलहैंडलर = खुला (फ़ाइल नाम, 'w')
pickle.dump (ऑब्जेक्ट, फ़ाइलहैंडलर)
यहां बताया गया है कि वास्तविक दुनिया कैसे दिखती है:
आयात अचार
आयात गणित
object_pi = math.pi
file_pi = open ('filename_pi.obj', 'w')
pickle.dump (object_pi, file_pi)
इस स्निपेट की सामग्री लिखते हैं object_pi फ़ाइल के लिए हैंडलर file_pi, जो बदले में फ़ाइल के लिए बाध्य है filename_pi.obj निष्पादन की निर्देशिका में।
मेमोरी के लिए ऑब्जेक्ट के मूल्य को पुनर्स्थापित करने के लिए, फ़ाइल से ऑब्जेक्ट को लोड करें। यह मानते हुए कि अचार अभी तक उपयोग के लिए आयात नहीं किया गया है, इसे आयात करके शुरू करें:
आयात अचार
फ़ाइलहैंडलर = खुला (फ़ाइल नाम, 'आर')
ऑब्जेक्ट = अचार .लोड (फ़ाइलहैंडलर)
निम्न कोड pi के मान को पुनर्स्थापित करता है:
आयात अचार
file_pi2 = open ('filename_pi.obj', 'r')
object_pi2 = pickle.load (file_pi2)
ऑब्जेक्ट फिर एक बार उपयोग के लिए तैयार है, इस बार के रूप में object_pi2. यदि आप चाहें, तो आप मूल नामों का पुन: उपयोग कर सकते हैं। यह उदाहरण स्पष्टता के लिए अलग-अलग नामों का उपयोग करता है।
अचार के बारे में याद रखने वाली बातें
अचार मॉड्यूल का उपयोग करते समय इन बातों का ध्यान रखें:
- अचार प्रोटोकॉल पायथन के लिए विशिष्ट है - यह क्रॉस-भाषा के अनुकूल होने की गारंटी नहीं है। आप संभवतः पर्ल, पीएचपी, जावा या अन्य भाषाओं में इसे उपयोगी बनाने के लिए जानकारी को स्थानांतरित नहीं कर सकते।
- पायथन के विभिन्न संस्करणों के बीच संगतता की कोई गारंटी नहीं है। IThe असंगति मौजूद है क्योंकि प्रत्येक पायथन डेटा संरचना को मॉड्यूल द्वारा क्रमबद्ध नहीं किया जा सकता है।
- डिफ़ॉल्ट रूप से, अचार प्रोटोकॉल के नवीनतम संस्करण का उपयोग किया जाता है। यह तब तक रहता है जब तक आप इसे मैन्युअल रूप से नहीं बदलते।
सुझाव: यह भी पता करें पायथन में वस्तुओं को बचाने के लिए शेल्व का उपयोग कैसे करें वस्तु निरंतरता बनाए रखने की एक और विधि के लिए।