ازگر میں اشیاء کو کیسے چننا ہے۔

How Pickle Objects Python



کسی بھی ڈیٹا کو JSON اور اچار ماڈیول کا استعمال کرتے ہوئے ازگر میں سیریلائزڈ اور ڈیسریلائز کیا جاسکتا ہے۔ فائل میں کسی بھی ڈیٹا کو ذخیرہ کرنے سے پہلے ، اچار ماڈیول کا استعمال کرتے ہوئے ازگر کی اشیاء کو سیریلائز کیا جاتا ہے۔ ازگر کی اشیاء کو اس ماڈیول کا استعمال کرتے ہوئے کیریکٹر اسٹریمز میں تبدیل کیا جاتا ہے۔ جب صارف کسی دوسرے ازگر کے اسکرپٹ کو استعمال کرنے کے لیے فائل کا ڈیٹا بازیافت کرنا چاہتا ہے تو پھر فائل کے ڈیٹا کو اچار ماڈیول کے ذریعے ڈیسریلائز کیا جاتا ہے۔ اچار ماڈیول کی خصوصیات اور اس ماڈیول کو ازگر کے اسکرپٹ میں سیریلائزیشن اور ڈیسریلائزیشن کے لیے کیسے استعمال کیا جا سکتا ہے اس ٹیوٹوریل میں بیان کیا گیا ہے۔

اچار کی خصوصیات:

  • یہ بنیادی طور پر ازگر اسکرپٹ کے استعمال کے لیے ڈیزائن کیا گیا ہے۔
  • یہ عمل کے درمیان ازگر کی اشیاء کو بچانے کے لیے استعمال ہوتا ہے۔
  • یہ تمام سیریلائزڈ اشیاء کا ٹریک رکھتا ہے اور جس چیز کو پہلے سیریلائز کیا گیا ہے وہ دوبارہ سیریلائز نہیں کرے گا۔
  • یہ کلاس کی مثال کو شفاف طریقے سے محفوظ اور بحال کر سکتا ہے۔
  • اسے استعمال کرنا محفوظ نہیں ہے۔ لہذا ، کسی نامعلوم ذریعہ سے ڈیٹا کو چننا بہتر نہیں ہے۔

ڈمپ () سیریلائزیشن کے لیے:

ڈمپ () فنکشن کسی فائل میں محفوظ کرنے سے پہلے آبجیکٹ ڈیٹا کو کریکٹر اسٹریم میں تبدیل کرنے کے لیے استعمال ہوتا ہے۔ یہ فنکشن تین دلائل لے سکتا ہے۔ پہلے دو دلائل لازمی ہیں اور آخری دلیل اختیاری ہے۔ پہلی دلیل ایک ڈیٹا آبجیکٹ لیتی ہے جسے سیریلائز کرنے کی ضرورت ہوتی ہے۔ دوسری دلیل اس فائل کے فائل ہینڈلر آبجیکٹ کو لیتی ہے جہاں پکلڈ ڈیٹا اسٹور کیا جائے گا۔ آخری دلیل پروٹوکول کا نام لیتی ہے۔







نحو:



ڈمپ(data_object،file_object، [پروٹوکول])

لوڈ () deserialization کے لیے:

load () فنکشن کا استعمال فائل سے کیریکٹر اسٹریم ڈیٹا کو ازگر آبجیکٹ میں تبدیل کرنے کے لیے کیا جاتا ہے۔ اس فنکشن میں صرف ایک دلیل ہوتی ہے اور فائل کا فائل ہینڈلر آبجیکٹ دلیل کی قیمت کے طور پر گزرتا ہے جہاں سے ڈیٹا واپس لیا جائے گا۔



نحو:





بوجھ(file_object)

فائل میں ذخیرہ کرنے کے لیے ایک سادہ چیز کو چنیں۔

نام کی فائل بنائیں۔ pickle1.py مندرجہ ذیل ازگر اسکرپٹ کے ساتھ۔ مندرجہ ذیل اسکرپٹ میں ، ایک ڈیٹا آبجیکٹ کا نام دیا گیا ہے۔ ڈیٹا آبجیکٹ لوپ کے لیے تکرار کرکے پانچ زبانوں کے نام ذخیرہ کرنے کا اعلان کیا گیا ہے۔ اگلا ، اوپن () طریقہ استعمال کیا جاتا ہے جس کا نام بائنری فائل بنانے کے لیے فائل ہینڈلر کو تفویض کیا جاتا ہے۔ زبانیں ڈمپ () فنکشن یہاں ڈیٹا کو سیریلائز کرنے کے لیے استعمال کیا جاتا ہے۔ ڈیٹا آبجیکٹ اور اس میں محفوظ کریں زبانیں فائل. اگر سیریلائزیشن مناسب طریقے سے کی جائے گی تو ایک پیغام ، ڈیٹا کو سیریلائزڈ کیا جائے گا۔

# اچار ماڈیول درآمد کریں۔
درآمد اچار

# آبجیکٹ کو ڈیٹا اسٹور کرنے کا اعلان کریں۔
ڈیٹا آبجیکٹ= []

# 5 بار لوپ کے لئے تکرار کریں اور زبان کے نام لیں۔
کے لیےnمیں رینج():
خام= ان پٹ('ایک زبان کا نام درج کریں:')

ڈیٹا آبجیکٹشامل کریں(خام)

# ڈیٹا لکھنے کے لیے ایک فائل کھولیں۔
file_handler= کھلا('زبانیں'، 'wb')

# آبجیکٹ کا ڈیٹا فائل میں ڈمپ کریں۔
اچار.ڈمپ(ڈیٹا آبجیکٹ،file_handler)

# وسائل جاری کرنے کے لیے فائل ہینڈلر بند کریں۔
file_handler.بند کریں()

# پیغام پرنٹ کریں۔
پرنٹ کریں('ڈیٹا سیریلائزڈ ہے')

آؤٹ پٹ:



اسکرپٹ چلانے کے بعد ، یہ پانچ زبانوں کے نام ان پٹ کے طور پر لے گا۔

فائل سے ڈیٹا نکالیں۔

ڈیٹا کو اچھالنا ڈیٹا کو اچھالنے کے برعکس ہے۔ نام کی فائل بنائیں۔ pickle2.py مندرجہ ذیل ازگر اسکرپٹ کے ساتھ۔ یہاں ، کھلا () طریقہ نامی بائنری فائل کو کھولنے کے لیے استعمال کیا جاتا ہے۔ زبانیں ، پچھلی مثال میں بنایا گیا۔ بوجھ () فنکشن کو فائل سے ڈیٹا کو چننے اور متغیر میں محفوظ کرنے کے لیے استعمال کیا جاتا ہے۔ ڈیٹا آبجیکٹ . اگلے، کے لیے لوپ استعمال کیا جاتا ہے جس سے ڈیٹا کو دہرایا جاتا ہے۔ ڈیٹا آبجیکٹ اور ٹرمینل میں پرنٹ کریں۔

# اچار ماڈیول درآمد کریں۔
درآمد اچار

# فائل کو پڑھنے کے لیے فائل ہینڈلر کھولیں جہاں سے ڈیٹا لوڈ ہوگا۔
file_handler= کھلا('زبانیں'، 'ر ب')

# ڈیسریلائزیشن کے بعد فائل سے ڈیٹا لوڈ کریں۔
ڈیٹا آبجیکٹ= اچار.بوجھ(file_handler)

# فائل ہینڈلر بند کریں۔
file_handler.بند کریں()

# پیغام پرنٹ کریں۔
پرنٹ کریں('deserialization کے بعد ڈیٹا')

# ڈیسریلائزیشن کے بعد ڈیٹا کو پرنٹ کرنے کے لیے لوپ کی تکرار کریں۔
کے لیےگھنٹےمیںڈیٹا آبجیکٹ:
پرنٹ کریں('ڈیٹا ویلیو:'،گھنٹے)

آؤٹ پٹ:

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

کسی فائل میں کلاس آبجیکٹ کو چنیں۔

کس طرح ایک کلاس آبجیکٹ چنائی جا سکتی ہے مندرجہ ذیل مثال میں دکھایا گیا ہے۔ نام کی فائل بنائیں۔ pickle3.py مندرجہ ذیل اسکرپٹ کے ساتھ۔ یہاں ، ملازم کلاس کو ملازم کے تین ڈیٹا ویلیوز تفویض کرنے کا اعلان کیا گیا ہے۔ اگلا ، ایک فائل ہینڈلر آبجیکٹ جس کا نام ہے۔ فائل ہینڈلر لکھنے کے لیے ایک فائل کھولنے کے لیے بنایا گیا ہے۔ کلاس آبجیکٹ کو شروع کرنے کے بعد ، ڈیٹا کو استعمال کرتے ہوئے سیریلائز کیا جاتا ہے۔ ڈمپ () فنکشن اور نامی فائل میں محفوظ ہے۔ ملازم ڈیٹا . اگر فائل ٹھیک سے بن جائے گی تو پیغام ، ڈیٹا سیریلائزڈ ہے۔ پرنٹ کریں گے.

# اچار ماڈیول درآمد کریں۔
درآمد اچار

# ملازم طبقے کو قیمت ذخیرہ کرنے کا اعلان کریں۔
کلاسملازم:
دفاع __اس میں__(خود،نام، ای میل،پوسٹ):
خود.نام =نام
خود.ای میل = ای میل
خود.پوسٹ =پوسٹ

#ملازم آبجیکٹ بنائیں۔
empObject=ملازم(فرحین، '[ای میل محفوظ]'، 'منیجر')

# اسٹور ڈیٹا کے لیے فائل کھولیں۔
فائل ہینڈلر= کھلا('ملازم ڈیٹا'، 'wb')

# ڈیٹا کو فائل میں محفوظ کریں۔
اچار.ڈمپ(empObject،فائل ہینڈلر)

# فائل بند کریں۔
فائل ہینڈلر.بند کریں()

# پیغام پرنٹ کریں۔
پرنٹ کریں('ڈیٹا سیریلائزڈ ہے')

آؤٹ پٹ:

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

ڈیٹا کو کسی کلاس آبجیکٹ سے نکالیں۔

ضروری خصوصیات اور طریقوں والی ایک کلاس کو کسی فائل سے کسی کلاس آبجیکٹ میں ڈیٹا کی بازیافت کے لیے اعلان کرنے کی ضرورت ہوگی۔ نام کی فائل بنائیں۔ pickle4.py مندرجہ ذیل کوڈ کے ساتھ. ملازم ڈیٹا کو بازیافت کرنے کے لیے یہاں کلاس کی وضاحت کی گئی ہے۔ fileObject فائل کو کھولنے کے لیے متغیر استعمال کیا جاتا ہے ، ملازم ڈیٹا پڑھنے کے لیے. اگلے، بوجھ () فنکشن ڈیسریلائزیشن کے بعد کلاس آبجیکٹ میں ڈیٹا کو اسٹور کرنے کے لیے استعمال ہوتا ہے۔ ڈسپلے () کا فنکشن ملازم کلاس کو کلاس آبجیکٹ کے ڈیٹا ویلیو پرنٹ کرنے کے لیے کہا جاتا ہے۔

# اچار ماڈیول درآمد کریں۔
درآمد اچار

# فائل سے ڈیٹا پڑھنے اور پرنٹ کرنے کے لیے ملازم کی کلاس کا اعلان کریں۔
کلاسملازم:
دفاع __اس میں__(خود،نام، ای میل،پوسٹ):
خود.نام =نام
خود.ای میل = ای میل
خود.پوسٹ =پوسٹ

دفاعڈسپلے(خود):
پرنٹ کریں('ملازم کی معلومات:')
پرنٹ کریں('نام:'، خود.نام)
پرنٹ کریں('ای میل:'، خود.ای میل)
پرنٹ کریں(پوسٹ: '، خود.پوسٹ)

# پڑھنے کے لیے فائل کھولیں۔
fileObject= کھلا('ملازم ڈیٹا'، 'ر ب')

# ڈیٹا کو اچھالیں۔
ملازم= اچار.بوجھ(fileObject)

# فائل بند کریں۔
fileObject.بند کریں()

#ڈیٹا فریم پرنٹ کریں۔
ملازم.ڈسپلے()

آؤٹ پٹ:

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

نتیجہ

اچار ماڈیول ڈیٹا سیریلائزیشن اور ڈیسریلائزیشن کے لیے ازگر کی ایک مفید خصوصیت ہے۔ اس ٹیوٹوریل میں دکھائی گئی مثالوں کو مکمل کرنے کے بعد ، ایک ازگر کے اسکرپٹ سے دوسرے ازگر کے اسکرپٹ میں منتقل ہونے والا ڈیٹا کسی کے لیے بھی آسان ہو جائے گا۔