وقتی برنامه در حال اجراست برنامه اطلاعات خود را در حافظه ram قرار داده و از آن برای اجرای برنامه استفاده می کند و با خارج شدن از برنامه اطلاعات پاک شده و ما قاnر به استفاده از آنها نیستیم. برای جلوگیری از پاک شدن اطلاعات ما نیازمند ذخیره اطلاعات بر روی hard disk هستیم.
برای ذخیره کردن مقدار یک متغیر در یک فایل (مانند: .txt )ابتدا باید متغیر را به صورت یک رشته درآورد .این را به راحتی می توان با استفاده از (متغیر)str به رشته در آورد:
>>> f.write (str (12)(
>>> f.write (str( [1,2,3]))
اما مشکل هنگامی است که ما بخواهیم متغیرها را باز خوانی کنیم.به دلیل اینکه ساختار همه متغیرها به رشته تبدیل شده و ساختار اصلی از بین رفته است.
راه حل این مشکل pickling است زیرا می تواند ساختار داده را همانطور که هست برای ما نگه دارد .(اگر عدد است عدد و اگر رشته است رشته)
برای این کار ابتدا ماژول pickle را import می کنیم ، سپس یک فایل را باز می کنیم (اگر فایل وجود نداشته باشد از طریق open می توان یک فایل را ایجاد کرد)
>>> import pickle
>>> f = open ("test.pck[A1] ","w[A2] ")
برای ذیره اطلاعات از dump استفاده میکنیم و فایل را می بندیم:
>>> pickle. dump (12.3, f)
>>> pickle. dump ([1,2,3], f)
>>> f.close ()
حال ما می توانیم فایل ذخیره شده را باز کنیم و ساختاری را که ذخیره کردیم load کنیم :
>>> f = open ("test.pck","r[A3] ")
>>> x = pickle. load (f)
>>> x
12.3
>>> type(x)
>>> y = pickle. load (f)
>>> y
[1, 2, 3]
>>> type(y)
و تابع load وsave در کتابخانه :
def savefile():
x=books[:]
t=open("flib.pck","w")
pickle. dump(x,t)
t.close()
print "Your information saved.”
def loadfile():
t=open("flib.pck","r")
books=pickle.load(t)
print type (books)
t.close()
print "File loaded successfully"
return books
[A1]فرمت فایل مثل .py .txt
[A2] از اول write گرفته شده برای ذخیره کردن(اگر فایل وجود نداشته باشد با عث ایجاد آن نیز میشود.)
[A3]از read گرفته سده و برای خواندن به کار میرود
+ نوشته شده در دوشنبه بیست و دوم آذر ۱۳۸۹ ساعت 14:57 توسط کامپیوتر 89 |