# Импортируем модуль os для работы с файловой системой (пути, проверка существования папок/файлов) import os # Импортируем модуль json для чтения и вывода JSON-файлов import json # Просим врача ввести ФИО пациента. Текст приглашения выводится через input, а не через print. # Результат сохраняем в переменную full_name_input full_name_input = input("Enter the full name of the patient separated by space (Ivanov Ivan Ivanovich)\n") # Просим врача ввести дату приёма, который он хочет посмотреть. Тоже через input. # Результат сохраняем в переменную visit_date visit_date = input("Enter the date of the appointment you want to see\n") # Разбиваем введённую строку ФИО по пробелам на отдельные части (фамилия, имя, отчество). # .strip() убирает лишние пробелы по краям, .split() делит строку по пробелам в список. parts = full_name_input.strip().split() # Формируем имя папки пациента: каждое слово приводим к виду "С большой буквы" через .capitalize(), # чтобы регистр ввода не влиял на поиск, и соединяем слова символом "_". patient_folder = "_".join(part.capitalize() for part in parts) # Собираем полный путь до папки пациента: "patients/{Ф_И_О}". # os.path.join корректно склеивает части пути для любой ОС. patient_path = os.path.join("patients", patient_folder) # Проверяем, существует ли папка с таким пациентом (os.path.isdir возвращает True, если это папка). if not os.path.isdir(patient_path): # Если папки нет — выводим сообщение об ошибке. print("there is not such patient!") else: # Если папка есть — формируем путь до файла card.json внутри неё. card_path = os.path.join(patient_path, "visits", "card.json") # Проверяем, существует ли файл card.json (os.path.isfile возвращает True, если это файл). if os.path.isfile(card_path): # Открываем файл card.json на чтение с кодировкой utf-8, чтобы корректно читать кириллицу. with open(card_path, "r", encoding="utf-8") as f: # Загружаем содержимое JSON-файла в словарь Python. card_data = json.load(f) # Выводим содержимое карты пациента в читаемом виде: # ensure_ascii=False — чтобы русские буквы не превращались в \uXXXX, # indent=4 — отступ в 4 пробела для красивого форматирования. print(json.dumps(card_data, ensure_ascii=False, indent=4)) else: # Если файла card.json нет — выводим сообщение об отсутствии приёма. print("There was no such appoinment with the doctor") # Формируем путь до файла приёма по введённой дате: "patients/{Ф_И_О}/visits/{дата}". visit_path = os.path.join(patient_path, "visits", visit_date) # Проверяем, существует ли файл приёма с такой датой. if os.path.isfile(visit_path): # Открываем файл приёма на чтение с кодировкой utf-8. with open(visit_path, "r", encoding="utf-8") as f: # Читаем всё содержимое файла и выводим его на экран. print(f.read()) else: # Если файла приёма с такой датой нет — выводим сообщение об ошибке. print("There was no such appoinment with the doctor")