שמור כתב לקובץ

Save Dict File



מילון הוא אובייקט מפורסם מאוד בפיתון. וזה אוסף של מפתחות וערכים. המפתח של הדיקט חייב להיות בלתי משתנה, והוא יכול להיות מספר שלם, צף, מחרוזת, אך לא רשימה או דיקט עצמו יכולים להיות מפתח. לכן, לפעמים עלינו לשמור את אובייקטים הנדרשים לקובץ. אז אנו הולכים לראות שיטות שונות לשמירת אובייקט dict בקובץ.

אנו יכולים לכתוב את המילון לקובץ ב- Python בדרכים שונות כמו:







  1. קובץ ערך המופרד בפסיקים (.csv)
  2. קובץ Json (.json)
  3. קובץ טקסט (.txt)
  4. קובץ חמוצים (.pkl)

אנו הולכים להסביר את כל השיטות הנ'ל.



שיטה 1: שמור מילון בפורמט CSV

כדי לשמור את המילון ב- CSV (ערכים מופרדים בפסיקים), אנו משתמשים במודול ה- CSV. הערכים המופרדים בפסיקים כדי לשמור את תכונת הפיתון היא השיטה הנפוצה והמפורסמת ביותר. רוב המתכנתים משתמשים בשיטה זו רק כדי לשמור את ההגדרה בקובץ. שמירת המילון בקובץ כ- CSV היא קלה מאוד מכיוון שעלינו להעביר את הנתונים כמחרוזת.



דוגמה_1: dict_to_csv.py





# dict_to_csv.py
יְבוּא csv

dict_sample= {'שֵׁם':'LinuxHint', 'עִיר':'זֶה', 'חינוך':'הַנדָסָה'}

עם לִפְתוֹחַ('data.csv', 'ב') כפי שו:
למַפְתֵחַבdict_sample.מפתחות():
ו.לִכתוֹב('% s,% s n'%(מַפְתֵחַ,dict_sample[מַפְתֵחַ]))

שורה 2 : אנו מייבאים את מודול פייתון CSV.

קו 4 : יצרנו נתוני dict לדוגמא. אנו הולכים לנסות לשמור אותו בצורה של קובץ CSV.



שורה 6: אנו משתמשים כאן בהצהרת 'עם' כדי לכתוב את קובץ ה- CSV. הצהרת 'עם' מטפלת בהתמודדות החריגה באופן אוטומטי במהלך קריאה או כתיבה של קובץ. אנו פותחים את קובץ data.csv במצב הכתיבה ומקצים אובייקט זה למשתנה f.

קו 7 , אנו מפעילים לולאת for שחולצת את המפתח, ובשורה הבאה היא כותבת את המפתח ואת מפתח המפתח לקובץ CSV. אז הלולאה הזו תפעל עד שיהיו נתונים.

פלט: data.csv

שֵׁם,LinuxHint
עִיר,זֶה
חינוך,הַנדָסָה

אז האמור לעיל מציג את קובץ הפלט לאחר כתיבה ב- data.csv.

כעת, אנו מבינים כיצד לשמור את ההגדרה לקובץ בצורה של CSV. ננסה עם דוגמה נוספת שבה נרצה לכתוב רשימה של אובייקטים של דיקט לקובץ ה- CSV.

דוגמה_2: dict_to_csv_2.py

# dict_to_csv_2.py

יְבוּא csv

csv עמודות= ['עִיר', 'מדינה', 'דַרגָה']
dictDemo= [
{'עִיר':'ניו יורק', 'מדינה':'שימושים', 'דַרגָה':3},
{'עִיר':'סידני', 'מדינה':'אוֹסטְרַלִיָה', 'דַרגָה':5},
{'עִיר':'דובאי', 'מדינה':'איחוד האמירויות', 'דַרגָה':10},
{'עִיר':'מומבאי', 'מדינה':'הוֹדוּ', 'דַרגָה':17},
{'עִיר':'בז'ינג', 'מדינה':'חרסינה', 'דַרגָה':7},
]
csvFileName= 'data.csv'
לְנַסוֹת:
עם לִפְתוֹחַ(csvFileName, 'ב') כפי שו:
סוֹפֵר= csv.DictWriter(ו,שמות שדות=csv עמודות)
סוֹפֵר.כותרת כתיבה()
לנתוניםבdictDemo:
סוֹפֵר.כותב(נתונים)
מלבד IOError:
הדפס('יש שגיאה')

שורה 3 עד 12: אנו מייבאים את מודול ה- CSV של פייתון ויוצרים רשימה של אובייקטים של dict. יצרנו גם רשימה של שמות עמודות.

שורה 13: הקצנו את שם קובץ ה- CSV למשתנה.

שורה 15: אנו משתמשים במשפט 'עם', והמשפט שהוקצה לאובייקט השיטה __enter__ מחזיר את המשתנה f.

שורה 16 ​​עד 19: לאחר הקצאת אובייקט ההחזרה למשתנה f, התקשרנו לשיטת DictWriter של מודול ה- CSV והעברנו שני פרמטרים (שם קובץ (f) ושמות עמודות). לאחר מכן אנו קוראים לשיטה נוספת writeheader () אשר תכתוב את השורה הראשונה של קובץ ה- CSV, שהוא בדרך כלל שם השדות. לאחר מכן אנו מריצים לולאת for ברשימת אובייקטים הכותבים וכותבים אחד אחד לקובץ ה- CSV בשיטת writerow ().

שיטה 2: שמור את ההגדרה לקובץ טקסט בפורמט JSON (מצב הוספה)

אנו יכולים גם לשמור את אובייקטים ה- dict בצורת ה- JSON לקובץ. הקוד להלן יסביר את אותו הדבר. קוד זה מסביר גם כיצד אנו יכולים להוסיף JSON חדש לרשימה קיימת של JSON.

דוגמא : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

יְבוּאjson

dictDemo= [
{'עִיר':'ניו יורק', 'מדינה':'שימושים', 'דַרגָה':3},
{'עִיר':'סידני', 'מדינה':'אוֹסטְרַלִיָה', 'דַרגָה':5},
{'עִיר':'דובאי', 'מדינה':'איחוד האמירויות', 'דַרגָה':10},
{'עִיר':'מומבאי', 'מדינה':'הוֹדוּ', 'דַרגָה':17},
{'עִיר':'בז'ינג', 'מדינה':'חרסינה', 'דַרגָה':7},
]

שם קובץ= 'dict.json'

# כתיבת רשימת אובייקטים של דיקט לקובץ
עם לִפְתוֹחַ(שם קובץ,מצב='ב') כפי שו:
json.מזבלה(dictDemo,ו)

# כתיבת אובייקט dict חדש לקובץ כצורף והחלפת הקובץ כולו
עם לִפְתוֹחַ(שם קובץ,מצב='ב') כפי שו:
dictDemo.לְצַרֵף({'עִיר':'בז'ינג', 'מדינה':'חרסינה'})
json.מזבלה(dictDemo,ו)

תְפוּקָה : dict.json

[{'עִיר':'ניו יורק', 'מדינה':'שימושים', 'דַרגָה':3},
{'עִיר':'סידני', 'מדינה':'אוֹסטְרַלִיָה', 'דַרגָה':5},
{'עִיר':'דובאי', 'מדינה':'איחוד האמירויות', 'דַרגָה':10},
{'עִיר':'מומבאי', 'מדינה':'הוֹדוּ', 'דַרגָה':17},
{'עִיר':'בז'ינג', 'מדינה':'חרסינה', 'דַרגָה':7},
{'עִיר':'בז'ינג', 'מדינה':'חרסינה'}
]

שורה 1 עד 13 : אנו מייבאים את מודול JSON. לאחר מכן אנו יוצרים רשימה של אובייקטים מכוונים להדגמה. לאחר מכן הקצנו את שם קובץ JSON לשם קובץ משתנה.

קו 15 עד 17 : אנו משתמשים בהצהרת 'עם' כדי לפתוח את קובץ JSON לכתיבה, ולאחר מכן אנו משתמשים בשיטת json.dump כדי להמיר את אובייקטים ה- dict ל- JSON ולאחר מכן לכתוב לתוך הקובץ.

שורה 20 עד 22: הקווים האלה מאוד חשובים כי מה יקרה? אם ננסה להוסיף אובייקטים חדשים של JSON לקבצים שכבר נכתבו. הנתונים הקודמים יאבדו עקב החיתום. לאחר מכן נוכל להשתמש בשם רשימת ההגדרות הקודמות כפי שעשינו (dictDemo), ואז אנו מצרפים לזה את האובייקט החדש. ולבסוף, אנו ממירים את כל הקובץ ל- JSON ומחליפים את כל הקובץ.

בפלט, אנו יכולים לראות כי אובייקט JSON חדש מתווסף לרשימת JSON קיימת.

שיטה 3: שמור את אובייקטים המילון לקובץ בצורת txt

אנו יכולים גם לשמור את המילון בפורמט מחרוזת רגיל בקובץ. לכן, השיטה שלהלן היא דרך פשוטה מאוד לשמור את אובייקטים המילון בקובץ בצורה של טקסט. אך קוד זה לא יפעל אם נרצה לצרף לקובץ אובייקט מילון חדש מכיוון שהוא יחליף את הנתונים שנכתבו בעבר. אז בשביל זה נראה אותו בקוד הבא.

דוגמא: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{'עִיר':'ניו יורק', 'מדינה':'שימושים', 'דַרגָה':3},
{'עִיר':'סידני', 'מדינה':'אוֹסטְרַלִיָה', 'דַרגָה':5},
{'עִיר':'דובאי', 'מדינה':'איחוד האמירויות', 'דַרגָה':10},
{'עִיר':'מומבאי', 'מדינה':'הוֹדוּ', 'דַרגָה':17},
{'עִיר':'בז'ינג', 'מדינה':'חרסינה', 'דַרגָה':7},
]

שם קובץ= 'dict.txt'

# כתיבת רשימת אובייקטים של דיקט לקובץ
עם לִפְתוֹחַ(שם קובץ,מצב='ב') כפי שו:
ו.לִכתוֹב(עמ(dictDemo))

תְפוּקָה: dict.txt

[{'עִיר':'ניו יורק', 'מדינה':'שימושים', 'דַרגָה':3},
{'עִיר':'סידני', 'מדינה':'אוֹסטְרַלִיָה', 'דַרגָה':5},
{'עִיר':'דובאי', 'מדינה':'איחוד האמירויות', 'דַרגָה':10},
{'עִיר':'מומבאי', 'מדינה':'הוֹדוּ', 'דַרגָה':17},
{'עִיר':'בז'ינג', 'מדינה':'חרסינה', 'דַרגָה':7}]

שורה 1 עד 11 : יצרנו רשימה של אובייקטים מילוניים והקצנו את שם הקובץ dict.txt לשם קובץ משתנה.

קו 14 עד 15 : אנו משתמשים כאן בהצהרת 'עם', המטפלת באופן אוטומטי בחריג. ואנו כותבים את רשימת אובייקטים של dict כמחרוזת לקובץ.

דוגמא: dict_to_txt_2.py

ראינו כיצד לשמור את אובייקט ה- dict לקובץ בצורה .txt. אבל בקוד לעיל, יש בעיה אחת עם הוספת אובייקט חדש. לכן, אנו משנים את שיטת הוספה מ- 'w' ל- 'a', שיכולה לפתור את הבעיה שלנו כפי שמוצג להלן בקוד.

#dict_to_txt_2.py

'' ': cvar
קוד זה ישמור את אובייקטים ה- dict בקובץ עם
להוסיף מצב.
'' '

dictDemo= [
{'עִיר':'ניו יורק', 'מדינה':'שימושים', 'דַרגָה':3},
{'עִיר':'סידני', 'מדינה':'אוֹסטְרַלִיָה', 'דַרגָה':5},
{'עִיר':'דובאי', 'מדינה':'איחוד האמירויות', 'דַרגָה':10},
{'עִיר':'מומבאי', 'מדינה':'הוֹדוּ', 'דַרגָה':17},
{'עִיר':'בז'ינג', 'מדינה':'חרסינה', 'דַרגָה':7},
]

שם קובץ= 'dict_to_file_appendMode.txt'

# כתיבת רשימת אובייקטים של דיקט לקובץ
עם לִפְתוֹחַ(שם קובץ,מצב='ל') כפי שו:
ו.לִכתוֹב(עמ(dictDemo))

קו 7 עד 15 : יצרנו רשימה של אובייקטים מילוניים והקצנו את שם הקובץ dict_to_file_appendMode.txt לשם קובץ משתנה.

קו 18 עד 19 : אנו משנים את המצב = 'a', וזה יפתור את הבעיה שלנו. הפלט שלהלן מראה כי הוספנו שני אובייקטים של dict באותו קובץ מבלי להחליף את הנתונים הקודמים.

פלט: dict_to_file_appendMode.txt

[{'עִיר':'ניו יורק', 'מדינה':'שימושים', 'דַרגָה':3},
{'עִיר':'סידני', 'מדינה':'אוֹסטְרַלִיָה', 'דַרגָה':5},
{'עִיר':'דובאי', 'מדינה':'איחוד האמירויות', 'דַרגָה':10},
{'עִיר':'מומבאי', 'מדינה':'הוֹדוּ', 'דַרגָה':17},
{'עִיר':'בז'ינג', 'מדינה':'חרסינה', 'דַרגָה':7}]

[{'עִיר':'ניו יורק', 'מדינה':'שימושים', 'דַרגָה':3},
{'עִיר':'סידני', 'מדינה':'אוֹסטְרַלִיָה', 'דַרגָה':5},
{'עִיר':'דובאי', 'מדינה':'איחוד האמירויות', 'דַרגָה':10},
{'עִיר':'מומבאי', 'מדינה':'הוֹדוּ', 'דַרגָה':17},
{'עִיר':'בז'ינג', 'מדינה':'חרסינה', 'דַרגָה':7}]

שיטה 4: שמור את אובייקט ה- dict לקובץ בשיטת החמוצים.

אנו יכולים גם לשמור את אובייקט ה- dict לקובץ באמצעות מודול החמוצים של פייתון. מודול החמוצים תומך באובייקטים רבים לצורך סידור בפייתון וגם תומך באובייקטים של דיקט.

# dict_to_file_use_pickle.py

יְבוּא מלפפון חמוץ

dictDemo= [
{'עִיר':'ניו יורק', 'מדינה':'שימושים', 'דַרגָה':3},
{'עִיר':'סידני', 'מדינה':'אוֹסטְרַלִיָה', 'דַרגָה':5},
{'עִיר':'דובאי', 'מדינה':'איחוד האמירויות', 'דַרגָה':10},
{'עִיר':'מומבאי', 'מדינה':'הוֹדוּ', 'דַרגָה':17},
{'עִיר':'בז'ינג', 'מדינה':'חרסינה', 'דַרגָה':7},
]

שם קובץ= 'picklefile.pkl'

עם לִפְתוֹחַ(שם קובץ, 'רָחוֹק') כפי שו:
מלפפון חמוץ.מזבלה(dictDemo,ו)

קו 3 עד 13 : אנו מייבאים את מלפפון החמוץ ויוצרים רשימה של אובייקטים של dict. אנו יוצרים גם שם קובץ שבו נשמור את אובייקטים הדיקט שלנו.

קו 15 עד 16 : אנו משתמשים כאן בהצהרת 'עם' ופותחים את הקובץ עם מצב צירוף ופורמט בינארי. לאחר מכן אנו זורקים את אובייקט ה- dict לתוך הקובץ.

סיכום

לכן, ראינו שיטות שונות לשמירת אובייקט מילוני לקובץ. זה תלוי במשתמש כיצד הם רוצים לשמור את האובייקט בקובץ. השיטות הנפוצות ביותר לשמירת אובייקט ה- dict בקובץ הן JSON ו- CSV. פורמטי JSON ו- CSV מפורסמים מאוד מבחינת התכנות או שקל לטפל בהם בפייתון. ראינו גם את מצב הוספה של שמירת קבצים.

ניתן להוריד את הקוד למאמר זה מקישור זה:

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