1) 保存"object/程序状态",就算启电脑也还可以再用。
2) tcp 传送给其它系统 (marshalling), https://docs.python.org/2/library/marshal.html
3) 保存 objects 在数据
4) 保存 object 去 string 当成 dict key 用!
#encoding:UTF-8import pickle
#序列化
def dump_pickle():
user={}
user['id']=1
user['name']='tanweijie'
user['email']='[email protected]'
user['sex']='boy'
#with保证自动关闭文件
#设置文件模式为'wb'来以二进制写模式打开文件
with open('C:/Users/Mr_Tank_/Desktop/user.pickle','wb') as f:
#dump()函数接受一个可序列化的Python数据结构
pickle.dump(user,f)
print('success')
#反序列化
def load_pickle():
with open('C:/Users/Mr_Tank_/Desktop/user.pickle','rb') as f:
user=pickle.load(f)
#user变量是一个字典
print(user)
创建一个文件,如果想要分多次写入数据data,显然每次都要调要dump,即[python] view plain copy
def writefile(loop, data):
name = 'wb' + str(loop) + '.txt'
f = open(name, "wb")
cPickle.dump(data,f,True)
cPickle.dump(range(11, 21, 3),f,True)
f.close()
调用两次dump,读取文件的时候,必须两次调用load才行
[python] view plain copy
def readfile(loop, layers):
# Load the dataset
name = 'wb' + str(loop) + '.txt'
f = open(name, 'rb')
data = cPickle.load(f)
print 'load first...'
print data
data = cPickle.load(f)
f.close()
print 'load second...'
print data