2020-08-18 pickle库

pickle库的作用:将内存中的Python对象转化成序列化的字节流,这是一种可以写入任何类型文件对象的字节串。它是一种超级通用的数据格式化和去格式化工具,几乎能把内存中任意的Python对象转化为字符串,以便于无格式文件中,或通过网络套接字在可信源中传输等。

  1. 通过pickle.dump可以存储字典,列表,元祖等内置类型;
    eg:
import pickle

a ='abcdefghijklmnopqrstuvwxyz'
b = range(1,27)
c = dict(zip(a,b))
f = open('cc','wb')
pickle.dump(c,f)
f.close()

通过pickle.load进行序列读取

import pickle

f = open('cc','rb')
dd = pickle.load(f)
f.close()
print(dd['a'])

运行结果:

1

  1. 类实例被pickle到文件类型的对象中。
    eg:
import pickle

class Person():
    def __init__(self):
        self.name='wang'
        self.age =34
        self.work ='engineer'
    def eat(self):
        print(self.name,'eating.....')

    def run(self):
        print(self.name,'running....')

jack = Person()
jack.name ='jack'
jack.age =45
f = open('jack','wb')
pickle.dump(jack,f)
f.close()

通过pickle.load进行序列读取,由于pickkle是存储内存中的数据,所以在读取类实例对象时,需要先引入原类到内存中,才能进行解码。

import pickle
from  example_pickle import Person

a = Person()
rec = pickle.load(open('jack','rb'))
print(rec.name)
print(rec.age)

运行结果:

jack
45

对于所有协议,pickle后的数据在3.X中是bytes而非str对象,因此如果存储在平面文件时需要二进制方式的读写。

你可能感兴趣的:(2020-08-18 pickle库)