1. # Импортируем модуль os для работы с путями и файловой системой
  2. import os
  3.  
  4. # Запрашиваем ФИО пациента (текст приглашения выводится через input, не через print)
  5. full_name_input = input("Enter the full name of the patient separated by space (Ivanov Ivan Ivanovich)\n")
  6.  
  7. # Разбиваем ФИО по пробелам и приводим каждое слово к виду "С большой буквы",
  8. # чтобы поиск не зависел от регистра ввода, и соединяем слова через "_"
  9. parts = full_name_input.strip().split()
  10. patient_folder = "_".join(part.capitalize() for part in parts)
  11.  
  12. # Собираем путь до папки пациента: patients/{Ф_И_О}
  13. patient_path = os.path.join("patients", patient_folder)
  14.  
  15. # Если папки с таким пациентом нет — выводим сообщение и завершаем программу
  16. if not os.path.isdir(patient_path):
  17. print("there is not such patient!")
  18. else:
  19. # Путь до папки с приёмами: patients/{Ф_И_О}/visits
  20. visits_path = os.path.join(patient_path, "visits")
  21.  
  22. # Получаем список всех записей (файлов/папок) в папке visits
  23. # os.listdir возвращает список имён; если папки нет — вернёт пустой список через проверку ниже
  24. visits = os.listdir(visits_path) if os.path.isdir(visits_path) else []
  25.  
  26. # Если список пуст — значит приёмов ещё не было
  27. if not visits:
  28. print("This is the first appointment")
  29. else:
  30. # Показываем врачу список предыдущих приёмов
  31. print("Previous appointments:")
  32. # Перебираем все найденные приёмы и выводим каждый на экран
  33. for visit in visits:
  34. print(visit)
  35.  
  36. # После просмотра списка запрашиваем дату приёма, который нужно открыть
  37. visit_date = input("Enter the date of the appointment you want to see\n")
  38.  
  39. # Строим путь до файла приёма по введённой дате
  40. visit_path = os.path.join(visits_path, visit_date)
  41.  
  42. # Если файл приёма существует — читаем и выводим его содержимое
  43. if os.path.isfile(visit_path):
  44. with open(visit_path, "r", encoding="utf-8") as f:
  45. print(f.read())
  46. else:
  47. # Если файла нет — выводим сообщение об ошибке
  48. print("There was no such appoinment with the doctor")