-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
89 lines (86 loc) · 4.28 KB
/
main.py
File metadata and controls
89 lines (86 loc) · 4.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
from functions import *
phone_book_file = 'data/users.json'
new_book_file = 'data/new_book.json'
def menu():
print("1. Загрузить телефонную книгу")
print("2. Сохранить изменения в телефонной книге")
print("3. Показать все контакты")
print("4. Создать контакт")
print("5. Удалить контакт")
print("6. Поиск по ФИО, Компании, Комментарию, ID")
print("7. Выйти из программы")
def main():
is_phonebook_loaded = False
phone_book = None
is_phonebook_changed = False
while True:
menu()
ask = input("Выберите нужный пункт меню и нажмите Ввод: ")
print()
if ask == '1': #Загрузка телефонной книги
phone_book = load_phonebook(phone_book_file)
is_phonebook_loaded = True
print("Телефонная книга загружена")
elif ask == '2': #Сохранение
if not phone_book:
phone_book = load_phonebook(phone_book_file)
save_phonebook(new_book_file, phone_book)
print("Телефонная книга сохранена")
elif ask == '3': # Распечатка телефонной книги
if not is_phonebook_loaded:
print("Телефонная книга не загружена!")
else:
show_all_contacts(phone_book)
elif ask == '4': #Создание абонента
user_id = generate_userid()
while user_id in phone_book.keys():
user_id = generate_userid()
username = input("Введите ФИО абонента: ")
phone = input("Введите телефон абонента: ")
company = input("Введите компанию: ")
comment = input("Введите комментарий (не обязательно): ")
if username and phone and company:
phone_book[user_id] = {"ФИО" : username,
"Телефон": phone,
"Компания": company,
"Комментарии": comment}
is_phonebook_changed = True
else:
print("Не все данные указаны!")
elif ask == '5':
if not is_phonebook_loaded:
print("Телефонная книга не загружена!")
else:
id_to_delete = input("Введите ID абонента: ")
if id_to_delete in phone_book:
phone_book.pop(id_to_delete)
print("Абонент удален из телефонной книги")
else:
print("Указанный ID не найден")
is_phonebook_changed = True
elif ask == '6':
if not is_phonebook_loaded:
print("Телефонная книга не загружена!")
else:
searchstr = input("Введите любое поле для поиска: ").strip()
result = find_by_any(phone_book, searchstr)
elif ask == '7':
if is_phonebook_changed:
print("В телефонную книгу был внесены изменения")
ask = ''
while ask not in ("Y", "N"):
ask = input("Применить изменения (запись в файл) ? Y/N: ")
if ask == 'Y':
data = json.dumps(phone_book, indent=4, ensure_ascii=False)
with open(new_book_file, 'w', encoding='utf-8') as file:
file.write(str(data))
elif ask == 'N':
pass
else:
print("Неверно, повторите ввод.")
print("Выходим из программы...")
break
else:
print("Выбор неверен, повторите ввод")
if __name__ == '__main__':
main()