1、说明
pickle:任何python对象与字节串之间的序列化
dbm:通过键访问实现存储字符串的文件系统
shelve:使用上述两个模块将python对象存储在一个文件中,即按键存储pickle处理后的对象并存储在dbm文件中
2、实例
##pickle ##将对象序列化为文件 f1=open("pickle.db","wb+") pickle.dump(p1,f1)##这里不能一步到位,即open("pickle.db","wb+"),它会导致pickle在读取时抛出EOFErrorororor。: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学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。