diff --git a/python_homeworks/homework_7/1.py b/python_homeworks/homework_7/1.py new file mode 100644 index 0000000..e69de29 diff --git a/python_homeworks/homework_7/README.md b/python_homeworks/homework_7/README.md new file mode 100644 index 0000000..af5bd02 --- /dev/null +++ b/python_homeworks/homework_7/README.md @@ -0,0 +1,17 @@ +## Задание: + +#### Задача: Создать телефонный справочник с возможностью импорта и экспорта данных в нескольких форматах. + +Для запуска телефонного справочника, запустите -> [main.py][gb1] + +Возможности: + +- импорт данных; + +- экспорт данных; + +- поиск контакта. + +Приятного пользования!) + +[gb1]: https://github.com/NikitaX007/python_sem_7/blob/main/main.py diff --git a/python_homeworks/homework_7/__pycache__/controller.cpython-310.pyc b/python_homeworks/homework_7/__pycache__/controller.cpython-310.pyc new file mode 100644 index 0000000..414179f Binary files /dev/null and b/python_homeworks/homework_7/__pycache__/controller.cpython-310.pyc differ diff --git a/python_homeworks/homework_7/__pycache__/export_data.cpython-310.pyc b/python_homeworks/homework_7/__pycache__/export_data.cpython-310.pyc new file mode 100644 index 0000000..20f5025 Binary files /dev/null and b/python_homeworks/homework_7/__pycache__/export_data.cpython-310.pyc differ diff --git a/python_homeworks/homework_7/__pycache__/import_data.cpython-310.pyc b/python_homeworks/homework_7/__pycache__/import_data.cpython-310.pyc new file mode 100644 index 0000000..a232426 Binary files /dev/null and b/python_homeworks/homework_7/__pycache__/import_data.cpython-310.pyc differ diff --git a/python_homeworks/homework_7/__pycache__/print_data.cpython-310.pyc b/python_homeworks/homework_7/__pycache__/print_data.cpython-310.pyc new file mode 100644 index 0000000..68412f9 Binary files /dev/null and b/python_homeworks/homework_7/__pycache__/print_data.cpython-310.pyc differ diff --git a/python_homeworks/homework_7/__pycache__/search_data.cpython-310.pyc b/python_homeworks/homework_7/__pycache__/search_data.cpython-310.pyc new file mode 100644 index 0000000..ee3ce02 Binary files /dev/null and b/python_homeworks/homework_7/__pycache__/search_data.cpython-310.pyc differ diff --git a/python_homeworks/homework_7/controller.py b/python_homeworks/homework_7/controller.py new file mode 100644 index 0000000..a0e0056 --- /dev/null +++ b/python_homeworks/homework_7/controller.py @@ -0,0 +1,45 @@ +from import_data import import_data +from export_data import export_data +from print_data import print_data +from search_data import search_data + +def greeting(): + print("Добро пожаловать в телефонный справочник!") + +def input_data(): + last_name = input("Введите фамилию: ") + first_name = input("Введите имя: ") + middle_name = input("Введите отчество: ") + brith_name = input("Введите дату рождения: ") + phone_number = input("Введите номер контакта: ") + note = input("Введите категорию контакта: ") + return [last_name, first_name, middle_name, brith_name, phone_number, note] + +def choice_sep(): + sep = input("Введите разделитель: ") + if sep == "": + sep = None + return sep + +def choice_todo(): + print("Доступные операции с телефонной книгой:\n\ + 1 - импорт;\n\ + 2 - экспорт;\n\ + 3 - поиск контакта.") + ch = input("Введите цифру: ") + if ch == '1': + sep = choice_sep() + import_data(input_data(), sep) + elif ch == '2': + data = export_data() + print_data(data) + else: + word = input("Введите данные для поиска: ") + data = export_data() + item = search_data(word, data) + if item != None: + print("Фамилия".center(20), "Имя".center(20), "Отчество".center(20), "Дата рождения".center(20), "Телефон".center(15), "Категория".center(30)) + print("-"*130) + print(item[0].center(20), item[1].center(20), item[2].center(20), item[3].center(20), item[4].center(15), item[5].center(30)) + else: + print("Данные не обнаружены") \ No newline at end of file diff --git a/python_homeworks/homework_7/export_data.py b/python_homeworks/homework_7/export_data.py new file mode 100644 index 0000000..1934f9f --- /dev/null +++ b/python_homeworks/homework_7/export_data.py @@ -0,0 +1,23 @@ +# модуль экспорта данных + +def export_data(): + with open('phone.csv', 'r') as file: + data = [] + t = [] + for line in file: + if ',' in line: + temp = line.strip().split(',') + data.append(temp) + elif ';' in line: + temp = line.strip().split(';') + data.append(temp) + elif ':' in line: + temp = line.strip().split(':') + data.append(temp) + elif line != '': + if line != '\n': + t.append(line.strip()) + else: + data.append(t) + t= [] + return data \ No newline at end of file diff --git a/python_homeworks/homework_7/import_data.py b/python_homeworks/homework_7/import_data.py new file mode 100644 index 0000000..590922a --- /dev/null +++ b/python_homeworks/homework_7/import_data.py @@ -0,0 +1,11 @@ +# модуль импорта данных + +def import_data(data, sep=None): + with open('phone.csv', 'a+') as file: + if sep == None: + for i in data: + file.write(f"{i}\n") + file.write(f"\n") + else: + file.write(sep.join(data)) + file.write(f"\n") \ No newline at end of file diff --git a/python_homeworks/homework_7/main.py b/python_homeworks/homework_7/main.py new file mode 100644 index 0000000..dab6c55 --- /dev/null +++ b/python_homeworks/homework_7/main.py @@ -0,0 +1,5 @@ +from controller import * + +greeting() + +choice_todo() \ No newline at end of file diff --git a/python_homeworks/homework_7/print_data.py b/python_homeworks/homework_7/print_data.py new file mode 100644 index 0000000..d50ec8c --- /dev/null +++ b/python_homeworks/homework_7/print_data.py @@ -0,0 +1,8 @@ +def print_data(data): + if len(data) > 0: + print("Фамилия".center(20), "Имя".center(20), "Отчество".center(20), "Дата рождения".center(20), "Телефон".center(15), "Категория".center(30)) + print("-"*130) + for item in data: + print(item[0].center(20), item[1].center(20), item[2].center(20), item[3].center(20), item[4].center(15), item[5].center(30)) + else: + print("Справочник пуст!") \ No newline at end of file diff --git a/python_homeworks/homework_7/search_data.py b/python_homeworks/homework_7/search_data.py new file mode 100644 index 0000000..317b2b5 --- /dev/null +++ b/python_homeworks/homework_7/search_data.py @@ -0,0 +1,12 @@ +# модуль поиска контакта + +from export_data import export_data +from print_data import print_data + +def search_data(word, data): + if len(data) > 0: + for item in data: + if word in item: + return item + else: + return None \ No newline at end of file