পাইথন পিকেল মডিউলটি পাইথন অবজেক্ট স্ট্রাকচার সিরিয়ালাইজিং এবং ডি-সিরিয়ালাইজ করার জন্য ব্যবহৃত হয়। যে কোনো ধরনের পাইথন অবজেক্টকে (তালিকা, ডিক্ট, ইত্যাদি) বাইট স্ট্রীমে (0s এবং 1s) রূপান্তর করার প্রক্রিয়াটিকে পিকলিং বা সিরিয়ালাইজেশন বা ফ্ল্যাটেনিং বা মার্শালিং বলা হয়। আমরা আনপিকলিং নামে একটি প্রক্রিয়ার মাধ্যমে বাইট স্ট্রীমকে (পিকলিং এর মাধ্যমে উৎপন্ন) আবার পাইথন বস্তুতে রূপান্তর করতে পারি।
কেন পিকল?:বাস্তব বিশ্বের দৃশ্যে, পিকলিং এবং আনপিকলিং এর ব্যবহার ব্যাপক কারণ তারা আমাদের সহজেই একটি সার্ভার/সিস্টেম থেকে অন্য সার্ভারে ডেটা স্থানান্তর করতে দেয় এবং তারপরে এটি একটি ফাইল বা ডাটাবেসে সংরক্ষণ করে।
সতর্কতা:অবিশ্বস্ত উত্স থেকে প্রাপ্ত ডেটা আনপিকল না করার পরামর্শ দেওয়া হয় কারণ তারা নিরাপত্তা হুমকির কারণ হতে পারে। যাইহোক, আচার মডিউলে দূষিত ডেটা তোলার সময় জানার বা অ্যালার্ম বাড়ানোর কোনো উপায় নেই৷
পিকেল মডিউল আমদানি করার পরই আমরা পিকলিং এবং আনপিকলিং করতে পারি। নিম্নোক্ত কমান্ড -
ব্যবহার করে আচার আমদানি করা যেতে পারেimport pickle
আচারের উদাহরণ:
নীচে একটি তালিকা আচার কিভাবে একটি সহজ প্রোগ্রাম:
একটি সাধারণ তালিকা আচার করুন :Pickle_list1.py
import pickle mylist = ['a', 'b', 'c', 'd'] with open('datafile.txt', 'wb') as fh: pickle.dump(mylist, fh)
উপরের কোডে, তালিকা - "মাইলিস্ট" এ চারটি উপাদান রয়েছে ('a', 'b', 'c', 'd')। আমরা ফাইলটি "w" এর পরিবর্তে "wb" মোডে খুলি কারণ বর্তমান কার্যকারী ডিরেক্টরিতে বাইট ব্যবহার করে সমস্ত অপারেশন করা হয়। “datafile.txt” নামে একটি নতুন ফাইল তৈরি করা হয়েছে, যা বাইট স্ট্রিমে মাইলিস্ট ডেটা রূপান্তর করে।
একটি সাধারণ তালিকা আনপিকল করুন :unpickle_list1.py
import pickle pickle_off = open ("datafile.txt", "rb") emp = pickle.load(pickle_off) print(emp)
আউটপুট:উপরের স্ক্রিপ্টগুলি চালানোর সময়, আপনি আউটপুট হিসাবে আপনার মাইলিস্ট ডেটা আবার দেখতে পাবেন।
['a', 'b', 'c', 'd']
একটি সহজ অভিধান আচার -
import pickle EmpID = {1:"Zack",2:"53050",3:"IT",4:"38",5:"Flipkart"} pickling_on = open("EmpID.pickle","wb") pickle.dump(EmpID, pickling_on) pickling_on.close()
একটি অভিধান আনপিকল করুন -
import pickle pickle_off = open("EmpID.pickle", 'rb') EmpID = pickle.load(pickle_off) print(EmpID)
উপরের স্ক্রিপ্টটি চালানোর (আনপিকল) আমরা আমাদের অভিধানটি ফিরে পাই যেভাবে আমরা আগে শুরু করেছি। এছাড়াও, দয়া করে মনে রাখবেন যে আমরা এখানে বাইট পড়ছি, আমরা "r" এর পরিবর্তে "rb" ব্যবহার করেছি৷
আউটপুট
{1: 'Zack', 2: '53050', 3: 'IT', 4: '38', 5: 'Flipkart'}
আচার ব্যতিক্রম
নীচে আচার মডিউল −
নিয়ে কাজ করার সময় কিছু সাধারণ ব্যতিক্রম উত্থাপিত হয়েছে-
Pickle.Pickling Error:যদি আচার বস্তুটি আচার সমর্থন না করে, তাহলে এই ব্যতিক্রমটি উত্থাপিত হয়।
-
Pickle.Unpickling Error:ফাইলে খারাপ বা নষ্ট ডেটা থাকলে।
-
EOFError:ফাইলের শেষ শনাক্ত করা হলে, এই ব্যতিক্রমটি উত্থাপিত হয়।
সুবিধা:
-
জটিল ডেটা সংরক্ষণ করতে সুবিধাজনক।
-
ব্যবহার করা সহজ, হালকা এবং একাধিক লাইন কোডের প্রয়োজন হয় না।
-
তৈরি করা পিক করা ফাইল সহজে পঠনযোগ্য নয় এবং তাই কিছু নিরাপত্তা প্রদান করে।
কনস:
-
পাইথন ব্যতীত অন্যান্য ভাষাগুলি আচারযুক্ত পাইথন বস্তুগুলিকে পুনর্গঠন করতে সক্ষম নাও হতে পারে৷
-
ক্ষতিকারক উত্স থেকে ডেটা আনপিকল করার ঝুঁকি৷