Advertisement
Guest

Task2

Sep 20th, 2026
7
0
Never
Not a member of GistPad yet? Sign Up, it unlocks many cool features!
None 6.61 KB | None | 0 0
  1. import os
  2.  
  3. # 1. Запрашиваем ФИО пациента одной строкой (фамилия имя отчество через пробел)
  4. full_name_input = input("Enter the full name of the patient separated by space (Ivanov Ivan Ivanovich): ")
  5.  
  6. # Разбиваем введённую строку на отдельные части по пробелам
  7. name_parts = full_name_input.strip().split()
  8.  
  9. # 2. Проверяем, что введено ровно 3 слова (Фамилия Имя Отчество)
  10. if len(name_parts) != 3:
  11. print("There is no such patient!")
  12. else:
  13. # 3. Формируем имя папки пациента в формате Фамилия_Имя_Отчество
  14. # capitalize() приводит каждое слово к виду "Иванов" из "иванов" или "ИВАНОВ"
  15. formatted_name = name_parts[0].capitalize() + "_" + name_parts[1].capitalize() + "_" + name_parts[2].capitalize()
  16.  
  17. # 4. Строим полный путь до папки с данными пациента:
  18. # <папка_скрипта>/materials/patients/<Фамилия_Имя_Отчество>
  19. patient_path = os.path.join(os.path.dirname(__file__), "materials", "patients", formatted_name)
  20.  
  21. # 5. Проверяем, существует ли папка такого пациента
  22. if not os.path.isdir(patient_path):
  23. print("There is no such patient!")
  24. else:
  25. # 6. Путь до папки с приёмами (визитами) пациента
  26. visits_path = os.path.join(patient_path, "visits")
  27.  
  28. # Собираем список предыдущих приёмов
  29. previous_appointments = []
  30. if os.path.isdir(visits_path):
  31. # Проходим по всем файлам в папке visits
  32. for filename in os.listdir(visits_path):
  33. # Берём только .txt файлы
  34. if filename.endswith(".txt"):
  35. # Отбрасываем расширение .txt, чтобы осталась только дата
  36. previous_appointments.append(filename[:-4])
  37. # Сортируем даты в хронологическом порядке (формат YYYY-MM-DD это позволяет)
  38. previous_appointments.sort()
  39.  
  40. # 7. Если приёмов нет — это первый визит, программа завершается
  41. if not previous_appointments:
  42. print("This is the first appointement with the doctor")
  43. else:
  44. # 8. Иначе выводим список предыдущих приёмов на экран
  45. print("Previous doctor appointments:")
  46. for appointment in previous_appointments:
  47. print(appointment)
  48.  
  49. # 9. Запрашиваем дату интересующего приёма
  50. date_input = input("Enter the date of the appointment you want to see: ")
  51.  
  52. # 10. Строим путь до файла с нужной датой
  53. appointment_path = os.path.join(visits_path, date_input + ".txt")
  54.  
  55. # 11. Проверяем, существует ли такой файл приёма
  56. if not os.path.exists(appointment_path):
  57. print("There was no such appointment with the doctor!")
  58. else:
  59. # 12. Читаем содержимое файла и выводим его на экран
  60. with open(appointment_path, 'r', encoding='utf-8') as f:
  61. content = f.read()
  62. print(content)
RAW Paste Data Copied
Advertisement
Advertisement