Książka kontaktowa + zapis do pliku Python#8


###### Zawartość pliku kontakty_save.json:

#{
#      "Alice": "[email protected]",
#    "Bob": "[email protected]",
#    "Laura": "[email protected],",
#    "Anna": "[email protected]"
#}**





import json
import os


def zapisz_kontakty():
    with open("kontakty_save.json", "w", encoding="utf8") as kontakty_json:

        json.dump(kontakty,
        kontakty_json,
        indent=4,
        sort_keys=True,
        ensure_ascii=False)

def wczytaj_kontakty():
    
    if os.path.exists("kontakty_save.json"):
        with open("kontakty_save.json", encoding="utf8") as kontakty_json:
            global kontakty
            kontakty = json.load(kontakty_json)

wczytaj_kontakty()

while True:
    print("Książka kontaktowa:")
    print("Wybierz operację:")
    print("1 - dodanie wpisu")
    print("2 - aktualizacja wpisu")
    print("3 - usunięcie wpisu")
    print("4 - wydruk wszystkich kontaktów")
    print("5 - wydruk konretntego kontaktu")
    print("6 - koniec programu")
    print("7 - wczytaj kontakty")
    print("8 - zapisz kontakty")

    wybor = input("Podaj kod operacji: ")

    if wybor == "1":
        print("1")
        kontakt = input("Podaj nazwę kontaktu, który chcesz dodać: ")

        while True:

            if kontakt in kontakty.keys():
                kontakt = input("Podana nazwa kontaktu już istnieje w bazie. Podaj inną nazwę: ")
            else:
                dane_kontaktowe = input(f"Podaj dane kontaktowe dla kontaktu {kontakt}: ")
                kontakty[kontakt] = dane_kontaktowe
                zapisz_kontakty()
                print (f"Kontakt {kontakt} został dodany do bazy.")
                print("")
                break

        
    
    elif wybor == "2":
        print("2")
        kontakt = input("Podaj nazwę kontaktu, który chcesz zaktualizaować: ")
        while True:
            if kontakt in kontakty.keys():
                kontakty[kontakt] = input(f"Podaj nowe dane kontaktowe dla kontaktu {kontakt}: ")
                zapisz_kontakty()
                print (f"Dane dla kontaktu {kontakt} zostały zaktualizowane.")
                print("")
                break
            else:
                kontakt = input("Podany kontakt nie istnieje w bazie. Podaj prawidłowy kontakt: ")
    
    elif wybor == "3":
        print("3")
        kontakt = input("Podaj nazwę kontaktu, który chcesz usunąć: ")

        while True:
            if kontakt in kontakty.keys():
                del kontakty[kontakt]
                zapisz_kontakty()
                print (f"Kontakt {kontakt} został usunięty z bazy.")
                print("")
                break
            else:
                kontakt = input("Podany kontakt nie istnieje w bazie. Podaj prawidłowy kontakt: ")
    

    elif wybor == "4":
        print("4")
        for kontakt in kontakty:
            print(kontakt, kontakty[kontakt])
        print("")

    elif wybor == "5":
        print("5")
        kontakt = input("Podaj kontakt, którego dane kontaktowe chcesz wyświetllić: ")

        while True:
            if kontakt in kontakty.keys():
                print (f"Dane kontaktowe dla kontaktu {kontakt} to: {kontakty[kontakt]}")
                print("")
                break
            else:
                kontakt = input("Podany kontakt nie istnieje w bazie. Podaj prawidłowy kontakt: ")

    elif wybor == "6":
        break
    
    elif wybor == "7":
        
        wczytaj_kontakty()

    elif wybor == "8":
        
        zapisz_kontakty()

       
    else:
            print("Nie ma opcji o podanym kodzie.") 
            print("")