# Импортируем модуль 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")