पाइथन
उत्तर
कुछ का उपयोग करता है कि मैं भर में आ गए हैं या एक मल्टी कोर में एक TCP कनेक्शन वितरित प्रणाली (मार्शलिंग)
3) एक डेटाबेस
4) एक स्ट्रिंग के लिए एक मनमाना अजगर वस्तु परिवर्तित करने में अजगर वस्तुओं के भंडारण के इतना है कि यह एक शब्दकोश कुंजी के रूप में इस्तेमाल किया जा सकता (उदाहरण के लिए सी दर्द & संस्मरण)।
पिछले एक के साथ कुछ मुद्दों कर रहे हैं - दो समान वस्तुओं मसालेदार जा सकता है और विभिन्न तार में परिणाम - या यहां तक कि एक ही वस्तु दो बार मसालेदार अलग अभ्यावेदन हो सकता है। ऐसा इसलिए है क्योंकि अचार में संदर्भ गणना जानकारी शामिल हो सकती है।
किसी को नेटवर्क या अन्य अविश्वसनीय चैनलों पर मसालेदार वस्तुओं को स्थानांतरित नहीं करना चाहिए, जब तक कि मसालेदार डेटा को मैनिपुलेशन के खिलाफ सावधानीपूर्वक सुरक्षित न किया जाए। अचार दस्तावेज अविश्वसनीय या अनधिकृत स्रोतों से * कभी * अनपिक डेटा को स्पष्ट रूप से चेतावनी देता है। – lunaryorn
@ लूनरीर्न: अच्छा बिंदु। यदि आप मशीनों के बीच मसालेदार डेटा स्थानांतरित करने जा रहे हैं तो एसएसएल या एसएसएच सुरंग जैसे सुरक्षित चैनल का उपयोग करें। –
फिर भी आप अंतराल पर भरोसा कर रहे हैं कि आप का शोषण न करें, जो कि संदर्भ के आधार पर ठीक हो सकता है या नहीं। –
मिनिमल गोल यात्रा उदाहरण ..
>>> import pickle
>>> a = Anon()
>>> a.foo = 'bar'
>>> pickled = pickle.dumps(a)
>>> unpickled = pickle.loads(pickled)
>>> unpickled.foo
'bar'
संपादित करें: लेकिन अचार बनाने के वास्तविक दुनिया उदाहरण के प्रश्न के लिए के रूप में, शायद अचार बनाने का सबसे उन्नत का उपयोग करें (आप काफी खुदाई करने के लिए होगा ZODB स्रोत में गहरी) है: http://svn.zope.org/
अन्यथा, PyPI कई उल्लेख है: http://pypi.python.org/pypi?:action=search&term=pickle&submit=search
मैंने नेटवर्क पर ट्रांसफर किए गए ऑब्जेक्ट्स के कई उदाहरण व्यक्तिगत रूप से नेटवर्क ट्रांसफर प्रोटोकॉल के उपयोग के रूप में देखा है।
मैंने इसे अपनी परियोजनाओं में से एक में उपयोग किया है। यदि एप्लिकेशन के दौरान यह काम कर रहा समाप्त किया गया, मैं पूरी डेटा संरचना बचाने के लिए और यह फिर से लोड करने पर ऐप फिर से चलाया गया था करने के लिए आवश्यक है (यह एक लंबा काम और डेटा की कार्रवाई की बहुत सारी किया)। मैंने इसके लिए सीपीकल का इस्तेमाल किया, क्योंकि गति एक महत्वपूर्ण बात थी और डेटा का आकार वास्तव में बड़ा था। अधिक
1) जब पुन: प्रारंभ डिस्क के लिए एक कार्यक्रम की राज्य डेटा बचत इतना है कि यह जहां यह दूर छोड़ दिया पर ले जा सकता है (हठ)
2) भेजने अजगर डेटा:
वास्तविक दुनिया का उदाहरण जोड़ने के लिए: Sphinx पाइथन के लिए प्रलेखन उपकरण दस्तावेज़ों के बीच पार्स किए गए दस्तावेज़ों और क्रॉस-रेफरेंस को कैश करने के लिए अचार का उपयोग करता है, ताकि दस्तावेज़ों के बाद के निर्माण को तेज किया जा सके।
पिकलिंग वितरित और समांतर कंप्यूटिंग के लिए बिल्कुल जरूरी है।
आप करना चाहते थे कहो एक समानांतर नक्शा को कम multiprocessing
(pyina साथ या भर में क्लस्टर नोड्स) के साथ है, तो आप यकीन है कि समारोह में आप चाहते समानांतर संसाधनों भर में मैप किया गया है करने के लिए अचार होगा बनाने की जरूरत है। यदि यह अचार नहीं करता है, तो आप इसे किसी अन्य प्रक्रिया, कंप्यूटर इत्यादि पर अन्य संसाधनों में नहीं भेज सकते हैं। उदाहरण के लिए here भी देखें।
ऐसा करने के लिए, मैं dill, जो अजगर में लगभग कुछ भी क्रमानुसार कर सकते हैं का उपयोग करें। डिल में some good tools भी है जो आपको समझने में मदद करता है कि आपका कोड विफल होने पर आपकी पिकलिंग विफल हो रही है।
और, हाँ, लोग गणना की स्थिति को बचाने के लिए चुनते हैं, या आपके ipython सत्र, या जो भी हो।
शुरुआत के लिए (जैसा कि मेरे साथ मामला है) यह समझना वाकई मुश्किल है कि official documentation पढ़ते समय पहली जगह में अचार का उपयोग क्यों करें। ऐसा इसलिए हो सकता है क्योंकि दस्तावेज़ों का अर्थ है कि आप पहले से ही क्रमबद्धरण के पूरे उद्देश्य को जानते हैं। धारावाहिकता के general description को पढ़ने के बाद ही मैंने इस मॉड्यूल और इसके सामान्य उपयोग के मामलों के कारण को समझ लिया है। इसके अलावा एक विशेष प्रोग्रामिंग भाषा की अनदेखी क्रमबद्धता के व्यापक स्पष्टीकरण मदद मिल सकती है: https://stackoverflow.com/a/14482962/4383472, What is serialization?, https://stackoverflow.com/a/3984483/4383472
आपका "उत्तर" कोई जवाब नहीं है, यह एक टिप्पणी का अधिक है। ओपी का सवाल है "अचार के लिए कुछ आम उपयोग-मामले क्या हैं?"। क्या आपको लगता है कि आपने उस प्रश्न का किसी भी तरह उत्तर दिया है? –
अच्छी तरह से, मुझे लगता है कि मैंने इस सवाल का जवाब दिया है क्योंकि जब मैंने इस मॉड्यूल के बारे में पढ़ने की कोशिश की तो मुझे अचार के सामान्य उपयोगों को समझने में भी कठिनाइयों का सामना करना पड़ा [यहां] (https://docs.python.org/3.4/library/pickle। एचटीएमएल), [यहां] (http://en.wikipedia.org/wiki/Pickle_ (पायथन)) और [यहां] (http://pymotw.com/2/pickle/index.html)। क्योंकि ज्यादातर वे यह समझाने लगते हैं कि कौन सा अचार यह मानता है कि आप धारावाहिकता की पूरी अवधारणा के पीछे प्रेरणा जानते हैं। Serialization पर सरल विकी लेख पढ़ने के बाद मैंने सामान्य विचार के साथ-साथ "सामान्य मामलों" को समझ लिया।शायद यह किसी की मदद करेगा ... – Bad
और उनमें से कुछ सामान्य मामले हैं ...? अगर कुछ ऐसे हैं जो यहां अन्य उत्तरों में सूचीबद्ध नहीं हैं ... उन्हें आपके उत्तर में जोड़ना बहुत उपयुक्त होगा। –
मैं तुम्हें का उपयोग करता है मैं के लिए इसका इस्तेमाल करते हैं और देखा है इसके लिए इस्तेमाल किया बता सकते हैं:
- खेल प्रोफाइल
- गेम डेटा जीवन और स्वास्थ्य की तरह बचाता है
- प्रोग्राम के लिए इनपुट नंबरों के पिछले रिकॉर्ड
उन लोगों मैं कम से कम
अचार की तरह अपने डेटा संरचनाओं और कक्षाओं के लिए "इस रूप में सहेजें .." और "ओपन .." है के लिए उपयोग कर रहे हैं। मान लें कि मैं अपने डेटा संरचनाओं को सहेजना चाहता हूं ताकि यह प्रोग्राम रनों के बीच लगातार हो।
सहेजा जा रहा है:
with open("save.p", "wb") as f:
pickle.dump(myStuff, f)
लोड हो रहा है:
try:
with open("save.p", "rb") as f:
myStuff = pickle.load(f)
except:
myStuff = defaultdict(dict)
अब मैं फिर से खरोंच से MyStuff निर्माण करने के लिए नहीं है, और मैं बस ले सकते हैं (ले) मैं कहाँ बाएं से ऊपर बंद।
मैंने कुछ ऐसा ही किया है, लेकिन Google मुझे यह बताने के लिए पर्याप्त स्मार्ट नहीं है कि एक निश्चित मॉड्यूल मेरी मदद कैसे कर सकता है। मुझे पता है कि 'अचार' का उपयोग कैसे करें, लेकिन मैं जो जानना चाहता हूं वह यह है कि अन्य लोग इसका उपयोग किस परिदृश्य में करते हैं। – satoru
इस प्रश्न के साथ कुछ भी गलत नहीं है। – FogleBird
उपरोक्त। Stackoverflow पर ऐसे प्रश्न बहुत महत्वपूर्ण हैं। –