উত্তর:
কিছু ব্যবহার যা আমি জুড়ে এসেছি:
1) কোনও প্রোগ্রামের স্টেটের ডেটা ডিস্কে সংরক্ষণ করা যাতে এটি চালু করতে পারে যেখানে পুনরায় চালু করার সময় এটি ছেড়ে গিয়েছিল (অধ্যবসায়)
২) একটি বহু-কোর বা বিতরণ সিস্টেমে টিসিপি সংযোগে পাইথন ডেটা প্রেরণ (মার্শালিং)
3) একটি ডেটাবেজে পাইথন অবজেক্টগুলি সঞ্চয় করা
৪) একটি অযৌক্তিক পাইথন বস্তুকে স্ট্রিংয়ে রূপান্তর করা যাতে এটি অভিধানের কী হিসাবে ব্যবহার করা যায় (যেমন ক্যাচিং এবং স্মৃতিচারণের জন্য)।
সর্বশেষ একটির সাথে কিছু সমস্যা রয়েছে - দুটি অভিন্ন জিনিসকে পিকেল করা যায় এবং বিভিন্ন স্ট্রিংয়ের ফলস্বরূপ হতে পারে - বা এমনকি একই জিনিসটি দু'বার বাছাই করা বিভিন্ন উপস্থাপনা করতে পারে। এটি কারণ আচার রেফারেন্স গণনা তথ্য অন্তর্ভুক্ত করতে পারে।
@ লুনারিওরনের মন্তব্যে জোর দেওয়ার জন্য - আপনার কোনও অবিশ্বস্ত উত্স থেকে কোনও স্ট্রিং আনপিক করা উচিত নয়, যেহেতু সাবধানে তৈরি করা আচার আপনার সিস্টেমে স্বেচ্ছাসেবক কোড কার্যকর করতে পারে। উদাহরণস্বরূপ https://blog.nelhage.com/2011/03/exploiting-pickle/ দেখুন
ন্যূনতম রাউন্ডট্রিপ উদাহরণ ..
>>> import pickle
>>> a = Anon()
>>> a.foo = 'bar'
>>> pickled = pickle.dumps(a)
>>> unpickled = pickle.loads(pickled)
>>> unpickled.foo
'bar'
সম্পাদনা: কিন্তু pickling বাস্তব-জগতের উদাহরণ প্রশ্ন, সম্ভবত হিসাবে জন্য pickling সব থেকে উন্নত ব্যবহার (আপনি উৎস মধ্যে বেশ গভীর খোঁড়াখুঁড়ি করতে হবে চাই) ZODB হল: http://svn.zope.org/
অন্যথায়, পিপিআইআই বেশ কয়েকটি উল্লেখ করেছে: http://pypi.python.org/pypi?:action=search&term=pickle&submit=search
নেটওয়ার্ক ট্রান্সফার প্রোটোকলটি ব্যবহারের সহজ হিসাবে নেটওয়ার্কে আচারযুক্ত বস্তু প্রেরণ করার বেশ কয়েকটি উদাহরণ আমি ব্যক্তিগতভাবে দেখেছি।
বিতরণ এবং সমান্তরাল কম্পিউটিংয়ের জন্য পিক্লিং একেবারে প্রয়োজনীয়।
বলুন যে আপনি সমান্তরাল মানচিত্রটি কমাতে চেয়েছিলেন multiprocessing
(বা পাইনা দিয়ে ক্লাস্টার নোড জুড়ে ), তারপরে আপনাকে নিশ্চিত করতে হবে যে সমান্তরাল সংস্থানগুলি জুড়ে ম্যাপ করার জন্য আপনি যে ক্রিয়াকলাপটি করতে চান তা আচার হবে। যদি এটি আচার না করে থাকে তবে আপনি এটি অন্য প্রক্রিয়া, কম্পিউটার ইত্যাদির অন্যান্য উত্সগুলিতে প্রেরণ করতে পারবেন না এবং একটি ভাল উদাহরণের জন্য এখানে দেখুন ।
এটি করার জন্য, আমি ডিল ব্যবহার করি , যা পাইথনের প্রায় কোনও কিছুই সিরিয়ালাইজ করতে পারে। আপনার কোডটি ব্যর্থ হয়ে যাওয়ার পরে আপনার পিকিংয়ে কী কী ব্যর্থ হচ্ছে তা বুঝতে আপনাকে সাহায্য করার জন্য ডিলেরও কিছু ভাল সরঞ্জাম রয়েছে ।
এবং, হ্যাঁ, লোকেরা গণনার অবস্থা বা আপনার আইপথন সেশন বা যা-ই হোক না কেন বাঁচাতে পিকিং ব্যবহার করে ।
আমি এটি আমার একটি প্রকল্পে ব্যবহার করেছি। যদি অ্যাপ্লিকেশনটি কাজ করার সময় বন্ধ হয়ে যায় (এটি একটি দীর্ঘ কাজ করেছে এবং প্রচুর ডেটা প্রক্রিয়া করেছে), আমার পুরো ডেটা কাঠামোটি সংরক্ষণ করতে হবে এবং অ্যাপটি আবার চালানোর পরে এটি পুনরায় লোড করা দরকার। আমি এটির জন্য সিপিকেল ব্যবহার করেছি, কারণ গতি একটি গুরুত্বপূর্ণ বিষয় এবং ডেটার আকার সত্যিই বড়।
আপনার ডেটা স্ট্রাকচার এবং ক্লাসের জন্য পিকল "সেভ অ্যাস .." এবং "ওপেন .." এর মতো। ধরা যাক আমি আমার ডেটা স্ট্রাকচারগুলি সংরক্ষণ করতে চাই যাতে এটি প্রোগ্রামের সঞ্চালনের মধ্যে স্থির থাকে।
সংরক্ষণ করা হচ্ছে:
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)
এখন আর আমার আবার স্ক্র্যাচ থেকে আমার স্টাফ তৈরি করতে হবে না এবং আমি যেখান থেকে চলে এসেছি সেখান থেকে আমি (লে) নিতে পারি।
নবজাতকের জন্য (যেমনটি আমার ক্ষেত্রে রয়েছে) সরকারী ডকুমেন্টেশন পড়ার সময় কেন প্রথমে আচার ব্যবহার করবেন তা বোঝা সত্যিই কঠিন । এটি ডক্স দ্বারা বোঝানো হয়েছে যে আপনি ইতিমধ্যে সিরিয়ালাইজেশনের পুরো উদ্দেশ্যটি জানেন। সিরিয়ালাইজেশনের সাধারণ বিবরণ পড়ার পরে কেবল আমি এই মডিউল এবং এর সাধারণ ব্যবহারের ক্ষেত্রে বুঝতে পারি understood নির্দিষ্ট প্রোগ্রামিং ভাষার উপেক্ষা না করে সিরিয়ালকরণের বিস্তৃত ব্যাখ্যাগুলি সহায়তা করতে পারে: https://stackoverflow.com/a/14482962/4383472 , সিরিয়ালাইজেশন কী? , https://stackoverflow.com/a/3984483/4383472
আমি এটির জন্য যেগুলি ব্যবহার করি সেগুলি আপনাকে বলতে পারি এবং এর জন্য এটি ব্যবহার করা দেখেছি:
এগুলি হ'ল আমি এটি কমপক্ষে ব্যবহার করি
আমি ওয়েব ওয়েবসাইট স্ক্র্যাপিংয়ের সময় পিকলিং ব্যবহার করি সেই সময়ে আমি 8000 কেও বেশি ইউআরএল সংরক্ষণ করতে চাই এবং এগুলি যত তাড়াতাড়ি সম্ভব প্রক্রিয়া করতে চাই তাই আমি পিক্লিং ব্যবহার করি কারণ এর আউটপুট গুণমান খুব বেশি।
আপনি সহজেই ইউআরএলে পৌঁছে যেতে পারেন এবং যেখানে চাকরি ডিরেক্টরি কী শব্দটি প্রক্রিয়াটি পুনরায় শুরু করার জন্য খুব দ্রুত ইউআরএল বিশদ আনতে পারে।