Not a member of GistPad yet?
Sign Up,
it unlocks many cool features!
- # Импортируем модуль 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")
RAW Paste Data
Copied
Advertisement
