Python——pickle模块(永久存储)
一、作用
讲字典、列表、字符串等对象进行持久化,存储到磁盘上,方便以后使用。
二、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()