03
Май
2020

Проблема с работой с файлами

Я хочу, чтобы когда пользователь нажимал "1", вводил имя и номер, они сохранялись в файле. С этим все ок, но когда я хочу создать еще одну запись в словаре, предыдущая удаляется.(Остаются только те, что записаны в коде изначально) Также происходит, когда я вызываю просмотр всех контактов, показывает только "Мама" : "890878ччч07", "Папа" : "890878ччу07" и последнюю запись, затем сразу удаляет последнюю запись

То есть суть в том, что программа не создает новую запись, а изменяет старую

ab = {  "Мама" : "890878ччч07",
        "Папа" : "890878ччу07"
}



print("Выберите действие:")
print("1)Добавить контакт")
print("2)Удалить контакт")
print("3)Просмотреть список всех контактов")
print("4)Изменить контакт")
print("5)Найти контакт")

act = input("Действие: ")




if act == "3":
    f = open("ab1.txt")
    while True:
        line = f.readline()
        if len(line) == 0:
            break 
        print(line, end='')
    f.close()






if act == "3)":
    f = open("ab1.txt")
    while True:
        line = f.readline()
        if len(line) == 0:
            break 
        print(line, end='')
    f.close()

if act == "Просмотреть список всех контактов":
    f = open("ab1.txt")
    while True:
        line = f.readline()
        if len(line) == 0:
            break 
        print(line, end='')
    f.close()

if act == "просмотреть список всех контактов":
    f = open("ab1.txt")
    while True:
        line = f.readline()
        if len(line) == 0:
            break 
        print(line, end='')
    f.close()


if act == "1":
    key = input("Введите имя: ")
    val = input("Введите номер: ")
    ab[key] = val


f = open('ab1.txt', 'w')
for key, val in ab.items():
    s = key + val + '\n'
    f.write(s)
f.close()

Источник: https://ru.stackoverflow.com/questions/1119710/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0-%D1%81-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BE%D0%B9-%D1%81-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%D0%BC%D0%B8

Тебе может это понравится...

Добавить комментарий