|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在之前学习中,我发现 如果对同一个文件多次dump之后load出来的数据好像不全,发帖问题求助 http://bbs.fishc.com/thread-61967-1-1.html可惜没人鸟咱。所以我就慢慢研究了下,刚刚突然毛瑟顿开 特来分(zhuang)享(bi)下.
之前我发现像这样- pkfile=open("data.txt",'ab')
- pickle.dump(data1,pkfile)
- pickle.dump(data2,pkfile)
- pkfile.close()
复制代码 之后与这样- pkfile=open("data.txt",'ab')
- pickle.dump(data1,pkfile)
- pkfile.close()
复制代码 load出来的结果是一样的,但是看文件data.txt的大小确实不同 而且扔到winhex里也确实内容有变多(详细可以看下之前的那个帖子http://bbs.fishc.com/thread-61967-1-1.html) 可能我们都是习惯把数据修改好再重新dump覆盖掉之前的,可是如果真的需要追回并且一定要load出来改怎么办呢
刚刚突然脑洞大开 我们正常dump一次 所以load一次就好了 这里我dump了两次 是不是要load两次才能把数据读出来呢。。。。果断试了下,代码:- import pickle
- data1 = {'a': [1, 2.0, 3, 4+6j],
- 'b': ('string', u'Unicode string'),
- 'c': None}
- data2 = {'aa': [1, 2.0, 3, 4+6j],
- 'bb': ('string', u'Unicode string'),
- 'cc': None}
- pkfile=open("data.txt",'ab')
- pickle.dump(data1,pkfile)
- pickle.dump(data2,pkfile)
- pkfile.close()
- pkfile2=open("data.txt",'rb')
- pkf=pickle.load(pkfile2)
- pkf1=pickle.load(pkfile2)
- print(pkf)
- print(pkf1)
复制代码
结果
第一次这样写 可能写的有点乱 而且自己这样分析也不一定对欢迎指导 |
|