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()

 

posted @ 2018-12-12 10:25  澄心元素  阅读(1957)  评论(0编辑  收藏  举报