输出成功
把格局拉高点吧,这仍然是一个高度定制化的代码。
pickle库的使用
pickle库介绍
pickle是python语言的一个标准模块,安装python后已包含pickle库,不需要单独再安装。
pickle模块实现了基本的数据序列化和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
一、内存中操作:
import pickle
#dumps 转化为二进制文件
li = [11,22,33]
r = pickle.dumps(li)
print(r)
#loads 将二进制数据编译出来
result = pickle.loads(r)
print(result)
二、文件中操作:
#dump:以二进制形式打开(读取:rb,写入wb)文件
li = [11,22,33]
pickle.dump(li,open('db','wb'))
#load
ret = pickle.load(open('db','rb'))
print(ret)
把二进制文件写入文件中:
try:
with open('lilei.txt','wb') as _lilei:
# utils.flatten(lilei,True,0,_lilei)
pickle.dump(lilei,_lilei)
with open('hanmeimei.txt','wb') as _hanmeimei:
# utils.flatten(hanmeimei, True, 0, _hanmeimei)
pickle.dump(hanmeimei,_hanmeimei)
print('works completed.')
except IOError as err:
print('file error.'+str(err))
except pickle.PickleError as pError:
print('err:'+str(pError))
数据已经被写入。
举例说:如何打开lileii.txt并正确编译呢?
new_lilei=[]
try:
with open('lilei.txt','rb') as _new_lilei:
new_lilei = pickle.load(_new_lilei)
print(utils.flatten(new_lilei))
except IOError as io:
print('err:'+str(io))
except pickle.PickleError as pError:
print('pickleError'+str(pError))
测试成功。
用pickle的通用io才是上策。