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