Код в вопросе надо обернуть тегом code для корректного отображения. Название вопроса надо переформулировать см.п.3.6
Длинную портянку текста traceback лучше спрятать под спойлер.
Рекомендую дополнить вопрос подробностями, что именно ожидалось получить и что идёт «не так» и как именно «не так».
Вопрос необходимо конкретизировать.
adaskl, вы меня извините, у меня глаза вытекают при взгляде на эту лапшу кода. И руки чешутся всё переделать. И голова сразу начинает думать, как можно это всё сделать по уму.
Но я сразу себя бью по рукам - задача большая, задачу и контекст я не знаю, поэтому лезть в рефакторинг этого не буду. Надо отдыхать вечером, а не вот это вот всё…
adaskl, в вашей функции не объявлен объект по имени text_1, поэтому и ошибка. Этот объект надо объявить либо внутри функции, либо в параметрах функции и затем передать его снаружи в функцию.
Вообще, когда появляются много одинаковых строк кода, отличающихся буквально парой индексов, это всё надо срочно переделывать, рефакторить. Иначе это плохо кончится - на любую переделку потребуется много труда и всё будет заброшено.
Длинную портянку текста traceback лучше спрятать под спойлер.