Я использую модуль полки 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
?
Также:Есть ли способ избежать создания трех файлов на дБ?(.bak, .dat, .dir)