python中dump有什么用

Python013

python中dump有什么用,第1张

通常涉及到 dump 这种字眼的都是格式的好处, 比如说 json.dumps 是 json 专属的格式, 而不是随便的格式。pickle 也一样, object 有它的特定的格式才能储存。

1) 保存"object/程序状态",就算启电脑也还可以再用。

2) tcp 传送给其它系统 (marshalling), https://docs.python.org/2/library/marshal.html

3) 保存 objects 在数据

4) 保存 object 去 string 当成 dict key 用!

#encoding:UTF-8  

import 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