python对象持久化的方法
python对象持久化的方法
1、说明
pickle:任意python对象和字节串之间的序列化
dbm:实现一个可通过键访问的文件系统,以存储字符串
shelve:使用上述两个模块把python对象存储到一个文件中,即按键存储pickle处理后的对象并存储在dbm的文件中
2、实例
##pickle
##将对象序列化到文件
f1=open("pickle.db","wb+")
pickle.dump(p1,f1)##这里不能一步到位,即open("pickle.db","wb+"),会导致pickle在读取的时候抛出EOFError:Ranoutofinput
f1.close()
##将对象序列化为字符串
string=pickle.dumps(p1)
##从文件读取
f=open("pickle.db","rb")
p=pickle.load(f)
##从字符串读取
p_obj=pickle.loads(string)
##dbm
##存储
db=dbm.open("dbm","c")
db[k1]=v1
db.close()
##读取
db=dbm.open("dbm","c")
forkeyindb.keys():
print("key[%s]--%s"%(key,db[key]))
##shelve
importshelve
db=shelve.open("persondb")
##filename
forobjectin[p1,p2]:
db[object.name]=objectdb.close()
##必须关闭
##从db文件中读取
db=shelve.open("persondb")##db拥有和字典相同的方法,区别在于shelve需要打开和关闭操作
forkeyindb.keys():
print("fromdb[%s]"%db[key])
以上就是python对象持久化的方法,希望对大家有所帮助。更多Python学习教程请关注IT培训机构:千锋教育。
猜你喜欢LIKE
相关推荐HOT
更多>>python输入数字变成月份
python输入数字变成月份1、思路说明可计算给定区间的时间差,即两者之间共包含几个月。然后由第一个月(开始时间)逐渐累积,最后得到给定时间区...详情>>
2023-11-08 17:57:59python怎么处理字符编码问题
python中可以使用base64来处理字符编码问题,Base64是一种用64个字符来表示任意二进制数据的方法。用记事本打开exe、jpg、pdf这些文件时,我们...详情>>
2023-11-08 17:11:19python怎么将图片转换成base64编码
该模块提供了基于rfc3548的Base16,32,64编解码的接口。该模块提供两套接口,传统接口基于rfc1521的Base64,当前接口基于rfc3548的Base16/32/64...详情>>
2023-11-08 16:24:33pythonif语句怎么写
if语句是python中常见的条件判断语句,我们先要知道它的运行原理,才能更好的使用它。Python程序语言指定任何非0和非空(null)值为true,0或者nu...详情>>
2023-11-08 16:14:27