liyihao

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

原链:http://www.cnblogs.com/vamei/archive/2012/09/15/2684781.html

笔记:

'''
文本流 linux
将内存中对象对应位置储存的数据,也就是二进制代码抓取出来,转换成文本流,这个过程叫做serialize,然后将文本流存入到文件中
'''

#对象转换成为文本流
import pickle

#define class
class bird(object):
    have_feather = True
    way_of_production = 'egg'


summer       = bird()     #这里之前讲过,summer 是继承了bird 的属性
picklestring = pickle.dumps(summer) #抓取 serialize object

#将对象summer 转换成了字符串picklestrig(文本流)
#作者说可以用文本存储方法,将字符串存储在文件

import pickle

#define class
class bird(object):
    hava_feather = True
    way_of_production = 'egg'

summer = bird()
fn     = 'a.pkl'

with open(fn, 'wb') as f:
    picklestring = pickle.dump(summer, f)


#写入对象就能重建对象
#读取文本,存储到字符串
#使用pickle.loads(str),将字符串转换对象

import pickle

class bird(object):
    have_feather = True
    way_of_production = 'egg'

fn = 'a.pkl'
with open(fn, 'rb') as f:
    summer = pickle.load(f)   #读取文件,和重建对象

print (summer)

'''
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte sequence
解决办法1.
FILE_OBJECT= open('order.log','r', encoding='UTF-8')

解决办法2.
FILE_OBJECT= open('order.log','rb')
'''


#cPickle包
#cPickle是基于C语言编写的,速度是pickle包的1000倍
import cPickle from pickle

 

posted on 2017-11-10 16:17  liyihao  阅读(886)  评论(0)    收藏  举报