pickle模块

pickle模块函数

pickle模块可以很方便的将Python数据对象转换为二进制,并且保存原有数据状态

数据对象二进制保存在内存

  • pick_obj = pickle.dumps(obj):将Python数据对象经过pickle处理,返回二进制数据
  • obj= loads(pick_obj):将pickle二进制数据转换为Python数据对象

1
2
3
4
5
6
7
>>> import pickle
>>> obj = [1,2,3]
>>> p_obj = pickle.dumps(obj)
>>> p_obj
b'\x80\x03]q\x00(K\x01K\x02K\x03e.'
>>> type(p_obj)
<class 'bytes'>
1
2
3
4
5
6
7
>>> p_obj
b'\x80\x03]q\x00(K\x01K\x02K\x03e.'
>>> re_obj = pickle.loads(p_obj)
>>> re_obj
[1, 2, 3]
>>> type(re_obj)
<class 'list'>

数据对象二进制保存到文件

  • dump(object,file):将对象写到文件,这个文件可以是实际的物理文件,但也可以是任何类似于文件的对象
  • obj = load(file):把文件对象里的我们之前保存进来的二进制数据返回成原先的数据对象
1
2
3
4
5
6
7
8
9
import pickle
list1 = [1,2,3,4,'abc',(1,2,3)]
fp = open('1.pkl','wb') #这里我们用到了二进制写文件
pickle.dump(list1,fp) #序列化之后保存到文件里
fp.close()

fp = open('1.pkl','rb') #以二进制读写文件打开文件
list2 = pickle.load(fp) #我们从文件里读取我们之前存储的内容
print(list2)
1
2
C:\Users\Administrator\Desktop>python 1.py
[1, 2, 3, 4, 'abc', (1, 2, 3)]

1.pkl文件内容:

1
2
3
8003 5d71 0028 4b01 4b02 4b03 4b04 5803
0000 0061 6263 7101 4b01 4b02 4b03 8771
0265 2e

转载请注明原文地址

您的支持将被用作发行更高质量原创技术!