python pickle模块学习

来源:互联网 发布:无名智者软件 编辑:程序博客网 时间:2024/05/25 08:15

pickle模块的基本作用是将对象序列化后写入到文件中去,

(1)序列化

pickle.dump(obj[,file][,mode])pickle.dumps(obj[,mode])

第二个命令只能序列化,不能写到文件中去,返回的是一个序列

如:

>>> b = "let's go">>> ret = pickle.dumps(b)>>> ret'S"let\'s go"\np0\n.'>>> 

>>> a = 5>>> ret = pickle.dumps(a)>>> ret'I5\n.'

(2)反序列化

pickle.load(file)pickle.loads(str)
load是直接从文件从反序列化,而loads是从字符串从反序列化

如:

# -*- coding: utf-8 -*-”'''execfile(r'E:/py_code/py_pickle/test1.py')''' import pickle, StringIO #自定义类型。class Person(object):    def __init__(self, name, address):        self.name = name        self.address = address        def display(self):        print 'name:', self.name, 'address:', self.address.decode('gbk').encode('utf-8') jj = Person("JGood", "中国 杭州")jj.display()file = StringIO.StringIO() pickle.dump(jj, file, 0)    #序列化#print file.getvalue()   #打印序列化后的结果 #del Person #反序列的时候,必须能找到对应类的定义。否则反序列化操作失败。 file.seek(0)jj1 = pickle.load(file) #反序列化jj1.display() file.close()

>>> b = "let's go">>> s1 = pickle.dumps(b)>>> b1 = pickle.loads(s1)>>> b1"let's go">>> 

(3)其他命令

pickle.Pickler(file) #是一个类,
其方法包含pickle常用的操作,如

dump:序列化

clear_memo:清空备忘

与之对应的是

pickle.Unpickler(file)

其方法有:

load:反序列化对象

load_xxxx :很多的反序列化方法





0 0
原创粉丝点击