ऑब्जेक्ट्स का एक कोरस पिकल करें: मल्टीपल इंस्टेंसेस को कैसे सेव और लोड करें
पायथन का पिकल मॉड्यूल एक फ़ाइल में ऑब्जेक्ट्स को क्रमबद्ध करने का एक सुविधाजनक साधन प्रदान करता है , बाद में उपयोग के लिए उनकी दृढ़ता को सक्षम करना। लेकिन उन परिदृश्यों के बारे में क्या जहां एकाधिक वस्तुओं को संरक्षण की आवश्यकता होती है? यह आलेख ऐसी स्थितियों से निपटने के तरीकों पर प्रकाश डालता है। वस्तुएं. हालाँकि, इस कार्यक्षमता को कई वस्तुओं तक विस्तारित करने से प्रश्न उठते हैं: क्या उन्हें सामूहिक रूप से सहेजा जा सकता है? क्या सूचियों या अन्य तरीकों से जुड़े विकल्प हैं? इस संयोजन दृष्टिकोण की कुंजी एक लूप में निहित है जो ऑब्जेक्ट पर पुनरावृत्त होता है, प्रत्येक को अचार.डंप() का उपयोग करके क्रमबद्ध करता है।
आयात अचार # खिलाड़ियों की नमूना सूची खिलाड़ी = [खिलाड़ी1, खिलाड़ी2, खिलाड़ी3] f के रूप में open('players.pkl', 'wb') के साथ: खिलाड़ियों में खिलाड़ी के लिए: पिकल.डंप(प्लेयर, एफ)
पिकल्ड एन्सेम्बल को पुनः प्राप्त करना: सहेजी गई धुनों का अनावरण करना
एक बार खिलाड़ियों का चयन हो जाने के बाद, पुनर्प्राप्ति एक सरल रिवर्स प्रक्रिया है। लूप के लिए फिर से उपयोग करते हुए, अचार फ़ाइल पर पुनरावृति करें और प्रत्येक ऑब्जेक्ट को अचार.लोड() के साथ लोड करें।
import अचार f के रूप में open('players.pkl', 'rb') के साथ: लोडेड_प्लेयर्स = [] जबकि सत्य: कोशिश करना: लोडेड_प्लेयर्स.एपेंड(अचार.लोड(एफ)) EOFError को छोड़कर: ब्रेक
import pickle
# Sample list of players
players = [Player1, Player2, Player3]
with open('players.pkl', 'wb') as f:
for player in players:
pickle.dump(player, f)
मौलिक दृष्टिकोण से परे, इन संवर्द्धनों पर विचार करें:
स्पष्ट लंबाई भंडारण से बचें: उपयोग करें फ़ाइल के अंत तक पहुंचने तक वस्तुओं को लगातार लोड करने के लिए एक जनरेटर, मेमोरी खपत को काफी कम करता है।
जेनरेटर के लाभ: जनरेटर अपनाने से मेमोरी-अनुकूल वृद्धिशील लोडिंग मिलती है, जो विशेष रूप से बड़े डेटासेट के लिए मूल्यवान है। निर्बाध रूप से निरंतर धुनों की सिम्फनी।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3