Pickle, שהוא חלק מספריית Python כברירת מחדל, הוא מודול חשוב בכל פעם שאתה זקוק להתמדה בין הפעלות משתמש. כמודול, מלפפון חמוץ מאפשר שמירה של אובייקטים של פייתון בין תהליכים.
בין אם אתה מתכנת ל מאגר מידע, משחק, פורום או יישום אחר שחייב לשמור מידע בין הפעלות, חמוצים שימושי לשמירת מזהים והגדרות. מודול החמוצים יכול לאחסן דברים כמו סוגי נתונים כמו בולינאים, מחרוזות ומערכי בתים, רשימות, מילונים, פונקציות ועוד.
הערה: מושג הכבישה ידוע גם כסיכום, ביצות והשטחה. עם זאת, הנקודה היא תמיד זהה - לשמור אובייקט בקובץ לצורך אחזור מאוחר יותר. כבישה מבצעת זאת על ידי כתיבת האובייקט כזרם ארוך אחד של בתים.
קוד דוגמה של פיקסל בפיתון
כדי לכתוב אובייקט לקובץ, אתה משתמש בקוד בתחביר הבא:
יבוא חמוצים
object = object ()
filehandler = פתוח (שם קובץ, 'w')
pickle.dump (אובייקט, מטפל בקבצים)
כך נראית דוגמה בעולם האמיתי:
יבוא חמוצים
יבוא מתמטיקה
object_pi = מתמטיקה.pi
file_pi = פתוח ('filename_pi.obj', 'w')
pickle.dump (object_pi, file_pi)
קטע זה כותב את התוכן של object_pi לקובץ קובץ המטפל, שבתורו מחויב לקובץ שם קובץ_pi.obj בספריית הביצוע.
כדי להחזיר את ערך האובייקט לזיכרון, טען את האובייקט מהקובץ. בהנחה שהחמצה טרם יובאה לשימוש, התחל בייבוא זה:
יבוא חמוצים
filehandler = פתוח (שם קובץ, 'r')
object = pickle.load (מטפל בקבצים)
הקוד הבא משחזר את הערך של pi:
יבוא חמוצים
file_pi2 = פתוח ('filename_pi.obj', 'r')
object_pi2 = pickle.load (file_pi2)
ואז האובייקט מוכן לשימוש שוב, והפעם object_pi2. אתה יכול, כמובן, לעשות שימוש חוזר בשמות המקוריים, אם אתה מעדיף. בדוגמה זו משתמשים בשמות מובחנים לשם הבהרה.
דברים שכדאי לזכור בנוגע לחמוץ
זכור דברים אלה בעת השימוש במודול החמוצים:
- פרוטוקול החמוצים הוא ספציפי לפייתון - הוא לא מובטח שהוא תואם בין שפות. ככל הנראה אינך יכול להעביר את המידע כדי שיהיה שימושי בפרל, PHP, Java או בשפות אחרות.
- אין גם ערובה לתאימות בין גרסאות שונות של פייתון. חוסר ההתאמה קיים מכיוון שלא כל מבנה נתונים של פייתון יכול להיות בהמשכים על ידי המודול.
- כברירת מחדל משתמשים בגרסה האחרונה של פרוטוקול החמוצים. זה נשאר ככה אלא אם תשנה אותו ידנית.
טיפ: גלה גם כיצד להשתמש במדף לשמירת חפצים בפיתון - לשיטה אחרת לשמירה על המשכיות האובייקט.