এই নিবন্ধে আমরা পাইথনে বিভিন্ন ডেটা টাইপ পিকলিং শিখব। আমরা বুলিয়ান, ইন্টিজার, ফ্লোট, কমপ্লেক্স নম্বর, স্ট্রিং, টাপল, লিস্ট, সেট এবং পিকলেবল অবজেক্ট ধারণকারী ডিকশনারি পিকল করতে পারি। কিছু এন্টিটি যেমন জেনারেটর, ইনার লোকাল ক্লাস, ল্যাম্বডা ফাংশন পিকল করা যায় না।
পিকলিং কী?
পিকলিং হলো পাইথন এন্টিটি অবজেক্ট টাইপ এবং সম্পর্কিত স্ট্রাকচারের সিরিয়ালাইজেশন এবং ডি-সিরিয়ালাইজেশন এর একটি المستمر সাইকেল, যাকে মার্শালিং বা ফ্ল্যাটেনিং ও বলা হয়। এতে মেমরিতে অবস্থিত একটি অবজেক্টকে বাইটসের রূপে কনভার্ট করা হয় যেটি ডিস্কে স্টোর করা যায় বা লোকাল নেটওয়ার্কে পাঠানো যায়।
ব্যবহারের সীমাবদ্ধতা?
যখন আমরা বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে ডেটা শেয়ার করতে চাই, পিকল মডিউল ব্যবহার প্রিয়র না। এর মানে ক্রস-প্ল্যাটফর্ম কম্প্যাটিবিলিটি গ্যারান্টি করা হয় না।
পিকলিং র ডেটা ওপর ফাইল হ্যান্ডলিং ছাড়াও করা যায়। এই মডিউলে আমরা শিখব কিভাবে র ডেটাকে সিরিয়ালাইজেশনের প্রক্রিয়ায় বাইনারি ফাইলে পিকল করা যায়।
উদাহরণ
# পাইথন পিকলিং
import pickle as pk
def learnData():
# ডাটাবেসে স্টোর করার ডেটা
dict_1 = {'tutorial': 'point', 'Python': '3.x'}
dict_2 = {'Data structure': 'dictionary', 'pickling': 'serialization'}
# ডাটাবেস
db = {}
db['1'] = dict_1
db['2'] = dict_2
# বাইনারি ফাইল ওপেন ফাইল পয়েন্টার ব্যবহার করে অ্যাপেন্ড মোডে
fp = open('Newfile', 'ab')
# সোর্স, ডেস্টিনেশন
pk.dump(db, fp)
fp.close()
def displayData():
# বাইনারি ফাইল ওপেন ফাইল পয়েন্টার ব্যবহার করে রিড মোডে
fp = open('Newfile', 'rb')
db = pk.load(fp)
for i in db:
print(i, '=>', db[i])
fp.close()
if __name__ == '__main__':
learnData()
displayData()
আউটপুট
dict_1 = {'tutorial': 'point', 'Python': '3.x'}
dict_2 = {'Data structure': 'dictionary', 'pickling': 'serialization'}
উপসংহার
এই নিবন্ধে আমরা পাইথন ৩.x-এ বিল্ট-ইন pickle মডিউল ব্যবহার করে পিকল এবং আনপিকল শিখেছি।