我使用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]