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



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

您的问题可能是搁置文件的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]

如果没有将写回选项设置为 True,则可以检索以前的值并像这样分配作为解决方法:

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

最新更新