حفظ ديكت إلى ملف

Save Dict File



القاموس هو كائن مشهور جدًا في لغة بيثون. وهي عبارة عن مجموعة من المفاتيح والقيم. يجب أن يكون مفتاح الديكت ثابتًا ، ويمكن أن يكون عددًا صحيحًا ، أو عددًا عشريًا ، أو سلسلة ، ولكن لا يمكن أن تكون القائمة أو الإملاء نفسه مفتاحًا. لذلك ، في بعض الأحيان نحتاج إلى حفظ كائنات ديكت في ملف. لذلك سنرى طرقًا مختلفة لحفظ كائن dt في ملف.

يمكننا كتابة القاموس إلى ملف بلغة بايثون بطرق مختلفة مثل:







  1. ملف قيم مفصولة بفواصل (.csv)
  2. ملف Json (.json)
  3. ملف نصي (.txt)
  4. ملف مخلل (.pkl)

سنقوم بشرح جميع الأساليب المذكورة أعلاه.



الطريقة الأولى: حفظ القاموس بتنسيق CSV

لحفظ القاموس في CSV (قيم مفصولة بفواصل) ، نستخدم وحدة CSV. القيم المفصولة بفواصل لحفظ بيثون ديكت هي الطريقة الأكثر شيوعًا وشهرة. يستخدم معظم المبرمجين هذه الطريقة فقط لحفظ الأمر في ملف. من السهل جدًا حفظ القاموس في ملف بتنسيق CSV حيث يتعين علينا نقل البيانات كسلسلة.



example_1 :ict_to_csv.py





#ict_to_csv.py
يستورد csv

dict_sample= {'اسم':'LinuxHint'و 'مدينة':'الذي - التي'و 'التعليم':'هندسة'}

مع افتح('data.csv'و 'في') كماF:
لمفتاحفيdict_sample.مفاتيح():
F.اكتب('٪ s ،٪ sن'٪(مفتاحوdict_sample[مفتاح]))

خط 2 : نقوم باستيراد وحدة CSV python.

الخط 4 : أنشأنا عينة بيانات ديكت. سنحاول حفظه في شكل ملف CSV.



السطر 6: نستخدم هنا بيان 'with' لكتابة ملف CSV. تعالج تعليمة 'with' الاستثناءات تلقائيًا أثناء قراءة الملف أو كتابته. نفتح ملف data.csv في وضع الكتابة ونخصص هذا الكائن للمتغير f.

الخط 7 ، نحن نشغل حلقة for تستخرج المفتاح ، وفي السطر التالي ، تكتب المفتاح و key_value في ملف CSV. لذلك ستستمر هذه الحلقة حتى تكون هناك بيانات.

الإخراج: data.csv

اسموLinuxHint
مدينةوالذي - التي
التعليموهندسة

لذلك ، ما ورد أعلاه يظهر ملف الإخراج بعد الكتابة على data.csv.

الآن ، نحن نفهم كيفية حفظ dict في ملف بصيغة CSV. دعونا نحاول مع مثال آخر حيث نريد كتابة قائمة بكائنات ديكت في ملف CSV.

example_2 :ict_to_csv_2.py

#ict_to_csv_2.py

يستورد csv

csvColumns= ['مدينة'و 'دولة'و 'مرتبة']
ديكت ديمو= [
{'مدينة':'نيويورك'و 'دولة':'الاستخدامات'و 'مرتبة':3}و
{'مدينة':'سيدني'و 'دولة':'أستراليا'و 'مرتبة':5}و
{'مدينة':'دبي'و 'دولة':'الإمارات العربية المتحدة'و 'مرتبة':10}و
{'مدينة':مومبايو 'دولة':'الهند'و 'مرتبة':17}و
{'مدينة':'بيجينغ'و 'دولة':'الصين'و 'مرتبة':7}و
]
csvFileName= 'data.csv'
محاولة:
مع افتح(csvFileNameو 'في') كماF:
كاتب= csv.DictWriter(Fوأسماء الحقول=csvColumns)
كاتب.writeheader()
لالبياناتفيديكت ديمو:
كاتب.الكاتب(البيانات)
إلا IOError:
مطبعة('حصلت على خطأ')

السطر 3 إلى 12: نستورد وحدة Python CSV وننشئ قائمة بكائنات ديكت. أنشأنا أيضًا قائمة بأسماء الأعمدة.

السطر 13: قمنا بتعيين اسم ملف CSV إلى متغير.

السطر 15: نستخدم تعليمة 'with' ، والبيان المعين للأسلوب __enter__ يعيد الكائن إلى المتغير f.

السطر 16 إلى 19: بعد تعيين كائن الإرجاع إلى المتغير f ، قمنا باستدعاء طريقة DictWriter لوحدة CSV وقمنا بتمرير معلمتين (اسم الملف (f) وأسماء العمود). ثم نسمي طريقة أخرى writeheader () والتي ستكتب الصف الأول من ملف CSV ، والذي يكون بشكل عام اسم الحقول. ثم نقوم بتشغيل حلقة for في قائمة كائنات ديكت ونكتب واحدة تلو الأخرى إلى ملف CSV باستخدام طريقة الكاتب ().

الطريقة الثانية: حفظ الأمر في ملف نصي بتنسيق JSON (وضع الإلحاق)

يمكننا أيضًا حفظ كائنات الدكت في شكل JSON في ملف. سوف يشرح الكود أدناه نفس الشيء. يوضح هذا الرمز أيضًا كيف يمكننا إضافة JSON جديد إلى قائمة JSON الحالية.

مثال : dict_to_file_asJSON.py

#ict_to_file_asJSON.py

يستوردjson

ديكت ديمو= [
{'مدينة':'نيويورك'و 'دولة':'الاستخدامات'و 'مرتبة':3}و
{'مدينة':'سيدني'و 'دولة':'أستراليا'و 'مرتبة':5}و
{'مدينة':'دبي'و 'دولة':'الإمارات العربية المتحدة'و 'مرتبة':10}و
{'مدينة':مومبايو 'دولة':'الهند'و 'مرتبة':17}و
{'مدينة':'بيجينغ'و 'دولة':'الصين'و 'مرتبة':7}و
]

اسم الملف= 'ديكت جسون'

# كتابة قائمة الكائنات ديكت في ملف
مع افتح(اسم الملفوالوضع='في') كماF:
json.أحمق(ديكت ديمووF)

# كتابة كائن ديكت جديد إلى ملف كإلحاق والكتابة فوق الملف بأكمله
مع افتح(اسم الملفوالوضع='في') كماF:
ديكت ديمو.ألحق({'مدينة':'بيجينغ'و 'دولة':'الصين'})
json.أحمق(ديكت ديمووF)

انتاج | : dict.json

[{'مدينة':'نيويورك'و 'دولة':'الاستخدامات'و 'مرتبة':3}و
{'مدينة':'سيدني'و 'دولة':'أستراليا'و 'مرتبة':5}و
{'مدينة':'دبي'و 'دولة':'الإمارات العربية المتحدة'و 'مرتبة':10}و
{'مدينة':مومبايو 'دولة':'الهند'و 'مرتبة':17}و
{'مدينة':'بيجينغ'و 'دولة':'الصين'و 'مرتبة':7}و
{'مدينة':'بيجينغ'و 'دولة':'الصين'}
]

السطر 1 إلى 13 : نقوم باستيراد وحدة JSON. ثم نقوم بإنشاء قائمة كائنات ديكت للعرض التوضيحي. ثم قمنا بتعيين اسم ملف JSON إلى اسم ملف متغير.

الخط 15 إلى 17 : نستخدم تعليمة 'with' لفتح ملف JSON للكتابة ، ثم نستخدم طريقة json.dump لتحويل كائنات dt إلى JSON ثم الكتابة في الملف.

السطر من 20 إلى 22: هذه السطور مهمة جدا لأن ماذا سيحدث؟ إذا حاولنا إضافة كائنات JSON جديدة إلى الملفات المكتوبة بالفعل. ستفقد البيانات السابقة بسبب الكتابة فوقها. ثم يمكننا استخدام اسم قائمة الإملاء السابق كما فعلنا (ديكت ديمو) ، ثم نقوم بإلحاق الكائن الجديد بذلك. وأخيرًا ، نقوم بتحويل الملف بأكمله إلى JSON والكتابة فوق الملف بأكمله.

في الإخراج ، يمكننا أن نرى أنه تمت إضافة كائن JSON جديد إلى قائمة JSON الحالية.

الطريقة الثالثة: احفظ كائنات القاموس في ملف بصيغة txt

يمكننا أيضًا حفظ القاموس في تنسيق سلسلة عادي في الملف. لذلك ، فإن الطريقة أدناه هي طريقة بسيطة للغاية لحفظ كائنات القاموس في الملف في شكل نصي. لكن هذا الرمز لن يعمل إذا أردنا إلحاق كائن قاموس جديد بالملف لأنه سيحل محل البيانات المكتوبة مسبقًا. لذلك ، من أجل ذلك ، سنراه في الكود التالي.

مثال: dict_to_txt.py

#ict_to_txt.py

ديكت ديمو= [
{'مدينة':'نيويورك'و 'دولة':'الاستخدامات'و 'مرتبة':3}و
{'مدينة':'سيدني'و 'دولة':'أستراليا'و 'مرتبة':5}و
{'مدينة':'دبي'و 'دولة':'الإمارات العربية المتحدة'و 'مرتبة':10}و
{'مدينة':مومبايو 'دولة':'الهند'و 'مرتبة':17}و
{'مدينة':'بيجينغ'و 'دولة':'الصين'و 'مرتبة':7}و
]

اسم الملف= 'ict.txt '

# كتابة قائمة الكائنات ديكت في ملف
مع افتح(اسم الملفوالوضع='في') كماF:
F.اكتب(ص(ديكت ديمو))

انتاج: dict.txt

[{'مدينة':'نيويورك'و 'دولة':'الاستخدامات'و 'مرتبة':3}و
{'مدينة':'سيدني'و 'دولة':'أستراليا'و 'مرتبة':5}و
{'مدينة':'دبي'و 'دولة':'الإمارات العربية المتحدة'و 'مرتبة':10}و
{'مدينة':مومبايو 'دولة':'الهند'و 'مرتبة':17}و
{'مدينة':'بيجينغ'و 'دولة':'الصين'و 'مرتبة':7}]

السطر 1 إلى 11 : أنشأنا قائمة بكائنات القاموس وخصصنا اسم ملفict.txt لاسم ملف متغير.

السطر 14 إلى 15 : نستخدم هنا عبارة 'with' ، والتي تعالج الاستثناء تلقائيًا. ونحن نكتب قائمة الكائنات التي تم ضبطها كسلسلة في ملف.

مثال: dict_to_txt_2.py

لقد رأينا كيفية حفظ الكائنات dt في ملف في شكل .txt. لكن في الكود أعلاه ، هناك مشكلة واحدة في إلحاق كائن جديد. لذلك ، قمنا بتغيير طريقة الإلحاق من 'w' إلى 'a' ، والتي يمكن أن تحل مشكلتنا كما هو موضح أدناه في الكود.

#ict_to_txt_2.py

'': cvar
سيحفظ هذا الرمز كائنات ديكت في الملف بامتداد
وضع الإلحاق.
''

ديكت ديمو= [
{'مدينة':'نيويورك'و 'دولة':'الاستخدامات'و 'مرتبة':3}و
{'مدينة':'سيدني'و 'دولة':'أستراليا'و 'مرتبة':5}و
{'مدينة':'دبي'و 'دولة':'الإمارات العربية المتحدة'و 'مرتبة':10}و
{'مدينة':مومبايو 'دولة':'الهند'و 'مرتبة':17}و
{'مدينة':'بيجينغ'و 'دولة':'الصين'و 'مرتبة':7}و
]

اسم الملف= 'ict_to_file_appendMode.txt '

# كتابة قائمة الكائنات ديكت في ملف
مع افتح(اسم الملفوالوضع='إلى') كماF:
F.اكتب(ص(ديكت ديمو))

السطر من 7 إلى 15 : أنشأنا قائمة من كائنات القاموس وقمنا بتعيين اسم الملفict_to_file_appendMode.txt إلى اسم ملف متغير.

السطر 18 إلى 19 : نقوم بتغيير الوضع = 'a' ، وهذا سيحل مشكلتنا. يوضح الإخراج أدناه أننا أضفنا كائنين من العناصر في نفس الملف دون الكتابة فوق البيانات السابقة.

الإخراج :ict_to_file_appendMode.txt

[{'مدينة':'نيويورك'و 'دولة':'الاستخدامات'و 'مرتبة':3}و
{'مدينة':'سيدني'و 'دولة':'أستراليا'و 'مرتبة':5}و
{'مدينة':'دبي'و 'دولة':'الإمارات العربية المتحدة'و 'مرتبة':10}و
{'مدينة':مومبايو 'دولة':'الهند'و 'مرتبة':17}و
{'مدينة':'بيجينغ'و 'دولة':'الصين'و 'مرتبة':7}]

[{'مدينة':'نيويورك'و 'دولة':'الاستخدامات'و 'مرتبة':3}و
{'مدينة':'سيدني'و 'دولة':'أستراليا'و 'مرتبة':5}و
{'مدينة':'دبي'و 'دولة':'الإمارات العربية المتحدة'و 'مرتبة':10}و
{'مدينة':مومبايو 'دولة':'الهند'و 'مرتبة':17}و
{'مدينة':'بيجينغ'و 'دولة':'الصين'و 'مرتبة':7}]

الطريقة الرابعة: احفظ الكائن dt في ملف باستخدام طريقة pickle.

يمكننا أيضًا حفظ الكائن dt في ملف باستخدام وحدة python pickle. تدعم وحدة pickle العديد من الكائنات للتسلسل في Python وتدعم أيضًا كائنات ديكت.

#ict_to_file_use_pickle.py

يستورد ورطة

ديكت ديمو= [
{'مدينة':'نيويورك'و 'دولة':'الاستخدامات'و 'مرتبة':3}و
{'مدينة':'سيدني'و 'دولة':'أستراليا'و 'مرتبة':5}و
{'مدينة':'دبي'و 'دولة':'الإمارات العربية المتحدة'و 'مرتبة':10}و
{'مدينة':مومبايو 'دولة':'الهند'و 'مرتبة':17}و
{'مدينة':'بيجينغ'و 'دولة':'الصين'و 'مرتبة':7}و
]

اسم الملف= 'picklefile.pkl'

مع افتح(اسم الملفو 'بعيدا') كماF:
ورطة.أحمق(ديكت ديمووF)

السطر 3 إلى 13 : نستورد مخلل الوحدة وننشئ قائمة بكائنات ديكت. نقوم أيضًا بإنشاء اسم ملف حيث سنحفظ كائنات الإملاء الخاصة بنا.

السطر 15 إلى 16 : نستخدم هنا بيان 'with' ونفتح الملف بوضع الإلحاق والصيغة الثنائية. ثم نقوم بتفريغ كائنات ديكت في الملف.

استنتاج

لذلك ، رأينا طرقًا مختلفة لحفظ كائن قاموس في ملف. يعتمد ذلك على المستخدم كيف يريد حفظ الكائن في الملف. أكثر الطرق شيوعًا لحفظ كائن dt في الملف هي JSON و CSV. تنسيقات JSON و CSV مشهورة جدًا من وجهة نظر البرمجة أو يسهل التعامل معها في Python. لقد رأينا أيضًا وضع الإلحاق لحفظ الملفات.

يمكن تنزيل الكود الخاص بهذه المقالة من هذا الرابط:

https://github.com/shekharpandey89/save-dict-object-to-a-file