一、作用
講字典、列表、字符串等對象進行持久化,存儲到磁盤上,方便以后使用。
二、dump()方法
pickle.dump(對象,文件,[使用協議])
作用:將要持久化的數據“對象”,保存到“文件中”
- obj:使用協議有3種,索引0位ASCII,1是舊時二進制,2是新式二進制,默認使用0。
二、dumps()方法
pickle.dumps(obj[, protocol])
作用:將obj對象序列化為string形式,而不是存入文件中
- obj:想要序列化的obj對象
- protocal:如果該項省略,則默認為0。如果為負值或HIGHEST_PROTOCOL,則使用最高的協議版本
四、load()方法
pickle.load(文件)
作用:從“文件”中,讀取字符串,將他們反序列化轉換為Python的數據對象。
五、loads()
作用:從string中讀出序列化前的obj對象
六、實例
import pickle class Person: def __init__(self, n, a): self.name = n self.age = a def show(self): print(self.name + "_" + str(self.age)) aa = Person("JGood", 2) aa.show() f = open('data.pk1', 'wb') # 必須以二進制打開,否則有錯 pickle.dump(aa, f, 0) l1 = [1, 2, 3] pickle.dump(l1, f, 0) f.close() # 必須先關閉,否則pickle.load(f1)會出現EOFError: Ran out of input f = open('data.pk1', 'rb') bb = pickle.load(f) bb.show() l2 = pickle.load(f) print(l2) f.close()
