Python3 Shelve - Удалить ключ и значение - PullRequest
0 голосов
/ 05 февраля 2019

Я использую модуль полки 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)

...