sanchepanso
А все же, как мне применить тот код который ты мне дал? Что значит “fname”, за что она отвечает?
Вот смотри
sanchepanso
msg_set: list = open('msg.txt', 'r', encoding='utf-8').read().splitlines()
вот это явно писал какой-то тупень. Он зачем-то указал тип у msg_set, типа он умный такой, а функцию open() использует неправильно. Прочитал файл и держит файл открытым до конца программы. Вообще эти сцепки тоже считаются дурным тоном, так как при возникновении ошибки в какой-то из частей этой сцепки эту ошибку не отловишь, так как не будешь точно знать, в каком из фрагментов сцепки она возникла. Стиль дурака, короче.
В этом коде всё в подобном стиле, поэтому не надо его переписывать, переделывать. Его надо просто выкинуть и больше к тому источнику не обращаться, где этот код был взят.
sanchepanso
то значит “fname”, за что она отвечает?
fname - это сокращение от file name.
Имя файла или даже полный путь к файлу записывается в эту переменную и потом через эту переменную передаётся в функцию open(), которая запускается в операторе контекста with, который проконтролирует закрытие файла сразу, как только файл будет прочитан. В переменной text после этого всего останется всё содержимое файла в виде строки, а сам файл будет уже закрыт к тому времени. Дальше эту переменную text можно брать и работать с ней, передавая её дальше таким же образом, как передавалось имя файла в функцию open() через переменную fname. В частности, в моём примере переменная text передаётся в функцию print(), чтобы содержимое переменной вывелось на экран. Но также переменную text можно передавать ещё куда-нибудь.
Так что можешь
Эту строку
msg_set: list = open('msg.txt', 'r', encoding='utf-8').read().splitlines()
заменить на этот код
fname = 'msg.txt'
with open(fname, encoding='utf-8') as fin:
text = fin.read()
А потом эту строку
заменить на этот код
Возможно, это будет работать, но это если только твой первоначальный код хоть как-то работает.