对python pickle的理解

python 提供了pickle模块,能将对象进行序列化,将对象以文件形式存放在磁盘。

几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化。但是序列化后的数据可读性很差。

pickle最主要的两个函数:

pickle.dump(obj, file[, protocol])    # 序列化对象,并将结果数据流写入到文件对象中。

                # 参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。protocol的值还可以是1或2,表示以二进制的形式序列化。

pickle.load(file)        # 反序列化对象。将文件中的数据解析为一个Python对象。

               # 每取一次对象,就要load一次

 dump() 和 pickle() 成对存在

其中要注意的是,在load(file)的时候,要让python能够找到类的定义,否则会报错

例子如下:

 1 import pickle
 2 
 3 info_1 = {'admin': 'admin'}
 4 info_2 = {'user': 'user'}
 5 
 6 with open('test.txt', 'wb') as urs_file:
 7     pickle.dump(info_1, urs_file)
 8     pickle.dump(info_2, urs_file)
 9 
10 with open('test.txt', 'rb') as urs_file:
11     while True:
12         try:
13             admin = pickle.load(urs_file)
14             print(admin)
15         except EOFError:
16             break

运行结果:

{'admin': 'admin'}
{'user': 'user'}

  

原文地址:https://www.cnblogs.com/lyuzt/p/9443752.html