python pickle模块学习

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 :很多的反序列化方法





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值