Ну если через это г..., то
x_split = x.split('\n')
print(x_split[0]) # где 0 - номер нужной вам строки (считая с 0)
Если вы ищете по предмету, то можно и такое сварганить
def extract_specific_lines(text, subject_keyword):
# Разбиваем строку на отдельные строки
lines = text.split('\n')
# Начинаем с пустого списка для хранения нужных строк
selected_lines = []
# Флаг для отслеживания, когда начинается нужный блок строк
start_collecting = False
# Перебираем все строки
for line in lines:
if line.startswith(f"Предмет: {subject_keyword}"):
start_collecting = True
if start_collecting:
selected_lines.append(line)
# Останавливаем сбор после последней нужной строки
if line.startswith("Задания и решения:"):
break
# Объединяем выбранные строки в одну строку
result = '\n'.join(selected_lines)
return result
# Ваша исходная строка
x = """Предмет: Право
Сроки проведения: 3 декабря 2024 года
Время начала: 16:00
Классы участия: 9–11
Итоги проверки: официальная публикация ожидается 9.12
Задания и решения: задания и решения
--------------------
Предмет: Математика
Сроки проведения: 4 декабря 2024 года
Время начала: 16:00
Классы участия: 7–8
Итоги проверки: официальная публикация ожидается 12.12
Задания и решения: задания и решения"""
# Используем функцию для извлечения нужных строк
subject_keyword = "Математика"
result = extract_specific_lines(x, subject_keyword)
# Выводим результат
print(result)
Но вообще все это бред. По-хорошему надо так:
blocks = []
block = {
"Предмет": subject,
"Сроки проведения": dates,
"Время начала": times,
"Классы участия": grades,
"Итоги проверки": itog,
"Задания и решения": results_publication
}
blocks.append(block)
А потом делайте, что хотите. Например вывести всё на экран можно так
for block in blocks:
for key, value in block.items():
print(f"{key}: {value}")
print("-" * 20)