import json
import os
def wczytaj(nazwa_pliku: str) -> dict: #ten str i dict są opcjonalne ("savoir vivre")
if os.path.exists(nazwa_pliku): #sprawdza, czy plik istnieje
with open(nazwa_pliku, encoding = "utf8") as wczytane:
return json.load(wczytane)
else:
return {}
def zapisz(nazwa_pliku: str, kontakty: dict):
with open(nazwa_pliku, "w", encoding = "utf8") as zapis:
return json.dump(kontakty, zapis, indent=2, sort_keys=True)
nazwa_pliku = input("Podaj nazwę pliku do wczytania w rozszerzeniu .json: ")
kontakty = wczytaj(nazwa_pliku)
while True:
# Zapytanie o wybranie operacji
operacja = input(
"""
Wybierz operację do wykonania:
1 - dopisanie pozycji do książki
2 - aktualizacja pozycji książki
3 - usunięcie pozycji książki
4 - wydruk imion z książki
5 - wydruk całej książki z kontaktami
6 - koniec programu
Podaj kod operacji = """
)
# Wykonanie wybranej operacji
if operacja == "1":
print("Wybrano 1\n")
nazwa = input("Wpisz imię/nazwę dla nowego wpisu: ")
if nazwa in kontakty.keys():
print("Kontakt o podanej nazwie już istnieje.\n")
breakpoint
else:
dane = input("Wpisz dane kontaktowe: ")
kontakty[nazwa]=dane
elif operacja == "2":
print("Wybrano 2\n")
nazwa = input("Podaj imię/nazwę wpisu, który chcesz zaktualizować: ")
if nazwa not in kontakty.keys():
print("Podana nazwa nie istnieje.\n")
breakpoint
else:
dane = input("Podaj nowe dane kontaktowe: ")
kontakty[nazwa]=dane
elif operacja == "3":
print("Wybrano 3\n")
nazwa = input("Podaj imię/nazwę wpisu, który chcesz usunąć: ")
if nazwa not in kontakty.keys():
print("Podana nazwa nie istnieje.\n")
breakpoint
else:
kontakty.pop(nazwa)
print(f"Usunięto kontakt: {nazwa}")
elif operacja == "4":
print("Wybrano 4\n")
for nazwa in kontakty.keys():
print(nazwa)
elif operacja == "5":
print("Wybrano 5\n")
for imie, dane in kontakty.items():
print(f"Imię: {imie} \nDane kontaktowe: {dane} \n------------")
elif operacja == "6":
break
elif operacja == "8":
print("Wybrano 8\n")
else:
print("\nPodano błędny kod operacji")
zapisz(nazwa_pliku, kontakty)
# Koniec programu
print("\nKoniec programu")