作者: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
浙公网安备 33010602011771号