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学习指路:Python基础教程
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)