我正在使用python shelve模块针对键值存储一些嵌套对象。我注意到搁置模块创建了三个文件:
file_name.db.bak
file_name.db.dat
file_name.db.dir
我注意到key
存储在.dir
文件中,而value
存储在.dat
文件中。
我尝试删除特定密钥时会发生我的问题,说:
import shelve
..
..
with open(file_name.db) as file:
if key in file:
del file[key]
在执行此操作时,我注意到从key
文件中删除了上述file_name.db.dir
,但是这些值仍保留在file_name.db.dat
文件中,尽管没有正确的key
在.dir
文件中。
如何删除key
及其value
?
还:有没有一种方法可以避免每个db创建三个文件? (.bak, .dat, .dir)