如何在python中使用pickle追加?

如何在python中使用pickle追加?,第1张

概述我需要附加到一个pickle文件(因为我没有一个人的整个字典).所以为了做同样的事情,我写了以下代码: import pickle p={} p[1]=2 q={} q['a']=p p={} p[2]=0 pickle.dump(q, open("save12.p","ab")) f={} f['b']=p pickle.dump(f,open("save12.p","ab" 我需要附加到一个pickle文件(因为我没有一个人的整个字典).所以为了做同样的事情,我写了以下代码:

import pickle p={} p[1]=2 q={} q['a']=p p={} p[2]=0 pickle.dump(q,open("save12.p","ab")) f={} f['b']=p pickle.dump(f,"ab"))

但是,当我加载pickle文件时,我没有找到字典f的值吗?????

有人可以建议我应该如何附加在pickle文件中?

此外,像’dbm’这样的数据库不能满足我的需求,因为我正在使用windows

解决方法 Pickle流完全是独立的,因此unpickling将一次取消一个对象.

因此,要取消分割多个流,您应该反复取消该文件的取消,直到获得EOFError:

>>> f=open('a.p','wb')>>> pickle.dump({1:2},f)>>> pickle.dump({3:4},f)>>> f.close()>>> >>> f=open('a.p','rb')>>> pickle.load(f){1: 2}>>> pickle.load(f){3: 4}>>> pickle.load(f)Traceback (most recent call last):  file "<stdin>",line 1,in <module>EOFError

所以你的unpickle代码可能看起来像

import pickleobJs = []while 1:    try:        obJs.append(pickle.load(f))    except EOFError:        break
总结

以上是内存溢出为你收集整理的如何在python中使用pickle追加?全部内容,希望文章能够帮你解决如何在python中使用pickle追加?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1191092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存