数据的存储与读取:序列化文件pickle()用法

忽然想到唐家三少里面的一个魂技;坚挺!坚挺!!金苍蝇
#coding:utf-8
__author__ = 'DBL_fish'
import pickle
import pickle
dataList = [[8,8,'hei'],
            [6,6,'ha'],
            [1,0,'he']]
dadaDic = {0:[1,6,8,3],
           1:('c','d'),
           2:{'c':'heng','d':'ha'}}
dataset = {1,2,2,2,3}
a =15
print(dataset,type(dataset))
print(dataList,type(dataList))
print(dadaDic,type(dadaDic))
#使用dump()将数据序列化到文件中  pickle(腌制)
fw = open('dateFile.txt','wb')
#Pickle the list using the highest protocol available
pickle.dump(dataList,fw,-1)
#Pickle the dictionary using protocol 0
pickle.dump(dadaDic,fw)
pickle.dump(dataset,fw)
pickle.dump(a,fw)

fw.close()
#使用load()将数据从文件中序列化读出
fr = open('dateFile.txt','rb')
data_1=pickle.load(fr)
data_2 =pickle.load(fr)
data_3 = pickle.load(fr)
data_4 = pickle.load(fr)

print(data_1)
print(data_2)
print(data_3)
print(data_4)
fr.close()

#使用dumps()和loads()举例
p = pickle.dumps(dataList)
print(pickle.loads(p))
p = pickle.dumps(dadaDic)
print(pickle.loads(p))

输出:
{1, 2, 3} <class 'set'>
[[8, 8, 'hei'], [6, 6, 'ha'], [1, 0, 'he']] <class 'list'>
{0: [1, 6, 8, 3], 1: ('c', 'd'), 2: {'c': 'heng', 'd': 'ha'}} <class 'dict'>
[[8, 8, 'hei'], [6, 6, 'ha'], [1, 0, 'he']]
{0: [1, 6, 8, 3], 1: ('c', 'd'), 2: {'c': 'heng', 'd': 'ha'}}
{1, 2, 3}
15
[[8, 8, 'hei'], [6, 6, 'ha'], [1, 0, 'he']]
{0: [1, 6, 8, 3], 1: ('c', 'd'), 2: {'c': 'heng', 'd': 'ha'}}

Process finished with exit code 0

给我的教训是:注意dumps与dump load与loads  吃一堑长一智

 

 参考链接:

Python数据存储:pickle模块的使用讲解 - coffee_cream的博客 - CSDN博客  https://blog.csdn.net/coffee_cream/article/details/51754484

Python3 输入和输出_w3cschool  https://www.w3cschool.cn/python3/python3-inputoutput.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值