Python: ValueError "is not in list" при o.readlines().index(i) из-за повторного вызова readlines()

o=open("programm.txt",'r',encoding='utf-8')
for i in o.readlines():
    print(str(o.readlines().index(i)))
ValueError: 'move-heading=<90>,step=<200>,speed=<fastest>,leave_a_trace=<Flse>,object=<turtle>\n' is not in list python

И программа выдаёт ошибку, хотя она буквально берёт элемент списка o.readlines() и находит его индекс в том же списке. Что делать?


Ответы (1 шт):

Автор решения: Evgenii Evstafev

По всей видимости, тк вы вызываете o.readlines() два раза (сначала во 2-ой строке кода, а затем в 3-ей), то файл не будет "перемотан" в начало (а он не был). Попробуйте что-то вроде:

with open("programm.txt", 'r', encoding='utf-8') as o:
    lines = o.readlines()
    for index, line_content in enumerate(lines):
        print(f"index: {str(index)}; {str(line_content)}")
→ Ссылка