কিভাবে পাইথনে বস্তু আচার করা যায়

How Pickle Objects Python



JSON এবং Pickle মডিউল ব্যবহার করে পাইথনে যেকোন ডেটাকে সিরিয়ালাইজড এবং ডিসেরিয়ালাইজ করা যায়। কোনও ফাইলে কোনও ডেটা সংরক্ষণ করার আগে, পাইথন বস্তুগুলি আচার মডিউল ব্যবহার করে সিরিয়াল করা হয়। এই মডিউল ব্যবহার করে পাইথন বস্তুগুলি চরিত্রের ধারায় রূপান্তরিত হয়। যখন ব্যবহারকারী অন্য পাইথন স্ক্রিপ্ট ব্যবহারের জন্য ফাইলের তথ্য পুনরুদ্ধার করতে চায় তখন ফাইলের ডেটা আচার মডিউল দ্বারা deserialized হয়। আচার মডিউলের বৈশিষ্ট্য এবং কিভাবে এই মডিউলটি সিরিয়ালাইজেশন এবং ডেসেরিয়ালাইজেশনের জন্য পাইথন স্ক্রিপ্টে ব্যবহার করা যায় তা এই টিউটোরিয়ালে বর্ণিত হয়েছে।

আচার বৈশিষ্ট্য:

  • এটি মূলত পাইথন স্ক্রিপ্টের জন্য ব্যবহার করার জন্য ডিজাইন করা হয়েছে।
  • এটি প্রক্রিয়াগুলির মধ্যে পাইথন বস্তু সংরক্ষণের জন্য ব্যবহৃত হয়।
  • এটি সমস্ত সিরিয়ালযুক্ত বস্তুগুলির ট্র্যাক রাখে এবং যে বস্তুটি আগে সিরিয়াল করা হয় তা আবার সিরিয়ালাইজ হবে না।
  • এটি স্বচ্ছভাবে ক্লাসের উদাহরণ সংরক্ষণ এবং পুনরুদ্ধার করতে পারে।
  • এটি ব্যবহার করা নিরাপদ নয়। সুতরাং, অজানা উত্স থেকে ডেটা আনপিকল করা ভাল নয়।

সিরিয়ালাইজেশনের জন্য ডাম্প ():

ডাম্প () ফাংশন একটি ফাইলে সেভ করার আগে অবজেক্ট ডেটাকে একটি ক্যারেক্টার স্ট্রীমে রূপান্তর করতে ব্যবহৃত হয়। এই ফাংশন তিনটি যুক্তি নিতে পারে। প্রথম দুটি যুক্তি বাধ্যতামূলক এবং শেষ যুক্তি alচ্ছিক। প্রথম যুক্তিটি একটি ডেটা অবজেক্ট নেয় যা সিরিয়ালাইজ করা প্রয়োজন। দ্বিতীয় যুক্তিটি সেই ফাইলের ফাইল হ্যান্ডলার অবজেক্ট নেয় যেখানে প্যাকড ডেটা সংরক্ষণ করা হবে। শেষ যুক্তিটি প্রোটোকলের নাম নেয়।







বাক্য গঠন:



ডাম্প(data_object,file_object, [প্রোটোকল])

লোড () deserialization জন্য:

লোড () ফাংশনটি ফাইল থেকে অক্ষরের স্ট্রিম ডেটাকে পাইথন অবজেক্টে রূপান্তর করতে ব্যবহৃত হয়। এই ফাংশনটিতে কেবল একটি যুক্তি রয়েছে এবং ফাইলটির ফাইল হ্যান্ডলার বস্তু যুক্তি মান হিসাবে পাস করে যেখানে ডেটা পুনরুদ্ধার করা হবে।



বাক্য গঠন:





বোঝা(file_object)

একটি ফাইলে সংরক্ষণ করার জন্য একটি সাধারণ বস্তু আচার করুন

নামে একটি ফাইল তৈরি করুন pickle1.py নিম্নলিখিত পাইথন স্ক্রিপ্ট সহ। নিম্নলিখিত স্ক্রিপ্টে, একটি ডেটা অবজেক্ট নামে dataObject লুপের জন্য পুনরাবৃত্তি করে পাঁচটি ভাষার নাম সংরক্ষণ করার ঘোষণা করা হয়েছে। এর পরে, একটি বাইনারি ফাইল তৈরি করার জন্য একটি ফাইল হ্যান্ডলার নিয়োগ করার জন্য open () পদ্ধতি ব্যবহার করা হয় ভাষা ডাম্প () ফাংশন এখানে ডেটার ক্রমানুসারে ব্যবহার করা হয় dataObject এবং এটি সংরক্ষণ করুন ভাষা ফাইল যদি সিরিয়ালাইজেশন সঠিকভাবে করা হবে তাহলে একটি বার্তা, ডেটা সিরিয়ালাইজড প্রিন্ট হবে।

# আচার মডিউল আমদানি করুন
আমদানি আচার

# তথ্য সংরক্ষণের জন্য বস্তুটি ঘোষণা করুন
dataObject= []

# 5 বার লুপের জন্য ইটারেট করুন এবং ভাষার নাম নিন
জন্যnভিতরে পরিসীমা(5):
কাঁচা= ইনপুট('একটি ভাষার নাম লিখুন:')

dataObject।সংযোজন(কাঁচা)

# তথ্য লেখার জন্য একটি ফাইল খুলুন
ফাইল_হ্যান্ডলার= খোলা('ভাষা', 'wb')

# ফাইলে বস্তুর ডেটা ফেলে দিন
আচারডাম্প(dataObject,ফাইল_হ্যান্ডলার)

# সম্পদ রিলিজ করতে ফাইল হ্যান্ডলার বন্ধ করুন
ফাইল_হ্যান্ডলার।বন্ধ()

# বার্তা প্রিন্ট করুন
ছাপা('ডেটা সিরিয়ালাইজড')

আউটপুট:



স্ক্রিপ্ট চালানোর পর, এটি ইনপুট হিসাবে পাঁচটি ভাষার নাম নেবে।

একটি ফাইল থেকে ডেটা আনপিকল করুন

ডেটা আনপিকল করা ডাটা পিকলিং এর বিপরীত। নামে একটি ফাইল তৈরি করুন pickle2.py নিম্নলিখিত পাইথন স্ক্রিপ্ট সহ। এখানে, খোলা () পদ্ধতিটি নামযুক্ত বাইনারি ফাইল খুলতে ব্যবহৃত হয় ভাষা , পূর্ববর্তী উদাহরণে তৈরি। বোঝা() ফাংশনটি ফাইল থেকে ডেটা আনপিকল করতে এবং ভেরিয়েবলে সংরক্ষণ করতে ব্যবহৃত হয় dataObject । পরবর্তী, জন্য লুপ থেকে তথ্য পুনরাবৃত্তি ব্যবহার করা হয় dataObject এবং টার্মিনালে মুদ্রণ করুন।

# আচার মডিউল আমদানি করুন
আমদানি আচার

# একটি ফাইল পড়ার জন্য একটি ফাইল হ্যান্ডলার খুলুন যেখানে থেকে ডেটা লোড হবে
ফাইল_হ্যান্ডলার= খোলা('ভাষা', 'আরবি')

# Deserialization পরে ফাইল থেকে ডেটা লোড করুন
dataObject= আচারবোঝা(ফাইল_হ্যান্ডলার)

# ফাইল হ্যান্ডলার বন্ধ করুন
ফাইল_হ্যান্ডলার।বন্ধ()

# বার্তা প্রিন্ট করুন
ছাপা('Deserialization পরে তথ্য')

# Deserialization পরে তথ্য মুদ্রণ করার জন্য লুপটি পুনরাবৃত্তি করুন
জন্যঘন্টাভিতরেdataObject:
ছাপা('ডেটার মান:',ঘন্টা)

আউটপুট:

স্ক্রিপ্ট চালানোর পর নিচের আউটপুট দেখা যাবে।

একটি ফাইলে একটি ক্লাস অবজেক্ট আচার করুন

কিভাবে একটি শ্রেণীর বস্তু আচার করা যায় তা নিচের উদাহরণে দেখানো হয়েছে। নামে একটি ফাইল তৈরি করুন pickle3.py নিম্নলিখিত স্ক্রিপ্ট সহ। এখানে, কর্মচারী একটি কর্মচারীর তিনটি ডেটা মান নির্ধারণ করার জন্য ক্লাস ঘোষণা করা হয়। পরবর্তী, একটি ফাইল হ্যান্ডলার অবজেক্ট নামে ফাইল হ্যান্ডলার লেখার জন্য একটি ফাইল খোলার জন্য তৈরি করা হয়েছে। ক্লাস অবজেক্ট শুরু করার পরে, ডেটা ব্যবহার করে সিরিয়াল করা হয় ডাম্প () ফাংশন এবং নামের ফাইলে সংরক্ষিত কর্মচারী ডেটা । যদি ফাইলটি সঠিকভাবে তৈরি হয় তাহলে বার্তা, ডেটা সিরিয়ালাইজড মুদ্রণ করবে।

# আচারের মডিউল আমদানি করুন
আমদানি আচার

# মান সংরক্ষণ করার জন্য কর্মচারী শ্রেণী ঘোষণা করুন
শ্রেণীকর্মচারী:
ডিফ __এটা__(স্ব,নাম, ইমেইল,পোস্ট):
স্বনাম =নাম
স্বইমেইল = ইমেইল
স্বপোস্ট =পোস্ট

#কর্মচারী বস্তু তৈরি করুন
empObject=কর্মচারী('ফারহিন', '[ইমেল সুরক্ষিত]', 'ম্যানেজার')

# স্টোর ডেটার জন্য ফাইল খুলুন
ফাইল হ্যান্ডলার= খোলা('কর্মচারী ডেটা', 'wb')

# ফাইলটিতে ডেটা সংরক্ষণ করুন
আচারডাম্প(empObject,ফাইল হ্যান্ডলার)

# ফাইলটি বন্ধ করুন
ফাইল হ্যান্ডলার।বন্ধ()

# বার্তা প্রিন্ট করুন
ছাপা('ডেটা সিরিয়ালাইজড')

আউটপুট:

স্ক্রিপ্ট চালানোর পর নিচের আউটপুট দেখা যাবে।

একটি ক্লাস অবজেক্টে ডেটা আনপিকল করুন

প্রয়োজনীয় বৈশিষ্ট্য এবং পদ্ধতির একটি শ্রেণীকে একটি ফাইল থেকে একটি শ্রেণীর বস্তুর ডেটা পুনরুদ্ধারের জন্য ঘোষণা করতে হবে। নামে একটি ফাইল তৈরি করুন pickle4.py নিম্নলিখিত কোড সহ। কর্মচারী শ্রেণী ডেটা পুনরুদ্ধার করার জন্য এখানে সংজ্ঞায়িত করা হয়েছে। fileObject ফাইলটি খুলতে ভেরিয়েবল ব্যবহার করা হয়, কর্মচারী ডেটা পড়ার জন্য. পরবর্তী, বোঝা() deserialization এর পরে ক্লাস অবজেক্টে ডেটা সংরক্ষণ করতে ফাংশন ব্যবহার করা হয়। প্রদর্শন () এর কাজ কর্মচারী ক্লাস বস্তুর ডেটা মান মুদ্রণ করতে বলা হয়।

# আচারের মডিউল আমদানি করুন
আমদানি আচার

# একটি ফাইল থেকে ডেটা পড়তে এবং মুদ্রণ করার জন্য কর্মচারী শ্রেণী ঘোষণা করুন
শ্রেণীকর্মচারী:
ডিফ __এটা__(স্ব,নাম, ইমেইল,পোস্ট):
স্বনাম =নাম
স্বইমেইল = ইমেইল
স্বপোস্ট =পোস্ট

ডিফপ্রদর্শন(স্ব):
ছাপা('কর্মচারী তথ্য:')
ছাপা('নাম:', স্বনাম)
ছাপা('ইমেইল:', স্বইমেইল)
ছাপা('পোস্ট:', স্বপোস্ট)

# পড়ার জন্য ফাইলটি খুলুন
fileObject= খোলা('কর্মচারী ডেটা', 'আরবি')

# ডেটা আনপিকল করুন
কর্মচারী= আচারবোঝা(fileObject)

# ফাইল বন্ধ করুন
fileObject।বন্ধ()

#ডাটাফ্রেম প্রিন্ট করুন
কর্মচারীপ্রদর্শন()

আউটপুট:

স্ক্রিপ্ট চালানোর পর নিচের আউটপুট দেখা যাবে।

উপসংহার

আচার মডিউল ডেটা সিরিয়ালাইজেশন এবং ডেসেরিয়ালাইজেশনের জন্য পাইথনের একটি দরকারী বৈশিষ্ট্য। এই টিউটোরিয়ালে দেখানো উদাহরণগুলি শেষ করার পরে, একটি পাইথন স্ক্রিপ্ট থেকে অন্য পাইথন স্ক্রিপ্টে ডেটা স্থানান্তর করা যে কারো জন্য সহজ হবে।