Есть код который должен записывать данные в файл, вот он:
from conversion_name import NameFull from finding_id import FindingId import shelve id_contact = FindingId() data_b = {} in_name = NameFull(input("Введите ФИО контакта: ")) in_phone = input("Введите номер телефона: ") data_b['name'] = in_name data_b['phone'] = in_phone print(data_b) db = shelve.open('data_base','c') db['data_b'] = id_contact+1 db.update() db.close()
Функция FindingId() подсчитывает количество ключей в shelve файле для задания следующего ключа, он же в будущем ID пользователя.
При опробовании кода модуль shelve создает файл и записывает первый контакт. Это все хорошо. Но вот когда я во второй раз пытаюсь вбить нового пользователя модуль shelve просто перезаписывает файл. Я пробовал менять ключ в ручную, все равно файл просто перезаписывается и если вывести print(db) то будет data_b. Я так полагаю, что решение мое проблемы заключается в добавлении нового словаря например data_b_1. Еще я предполагаю, что модуль shelve может добавлять новые данные только в уже имеющийся словарь, а при попытке добавления нового словаря shelve просто перезаписывает файл . Вообщем запутался. Вправьте мне мозги пожалуйста.

