Python3 Shelve - Удалить ключ и значение

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

0 ответов

Другие вопросы по тегам