Python:使用Shelve模块如何更新现有的。 Dat文件

时间:2015-01-09 17:59:39

标签: python

我使用shelve创建了一个.dat文件,该文件存储的数据与.dat文件中的list类似。 我的困惑是如何更新我尝试追加的.dat文件,因为它有点类似于列表 请提出宝贵的答复。

1 个答案:

答案 0 :(得分:0)

您的问题可能是搁置文件的writeback属性。 假设您已经拥有密钥key1的数据:

 import shelve
 d = shelve.open('testfile')

 d['key1'] = [1,2,3]
 print d['key1']   # data is [1,2,3]

 d['key1'].append('4')
 print d['key1']   # data is still [1,2,3]!

最好,您必须将回写选项设置为True。例如:

 import shelve
 d = shelve.open('testfile', writeback=True)

 d['key1'] = [1,2,3]
 print d['key1']   # data is [1,2,3]

 d['key1'].append('4')
 print d['key1']   # data is now [1,2,3,4]

如果没有将writeback选项设置为True,您可以检索以前的值并像这样指定为变通方法:

 temp = d['key1'] # temp is [1,2,3]
 temp.append(4)
 d['key1'] = temp # data is now [1,2,3,4]