string index out of range (while function)

Рейтинг: 0Ответов: 1Опубликовано: 24.02.2023

при попытке вывести последнюю строку из списка по индексу получаю ошибку:

File "c:\path_to_file\count.py", line 9, in <module>
    fd = fd[x-1]
IndexError: string index out of range

код:

with open('separated.txt', 'r') as info:
    for line in info:
        fd = info.readlines()
        x = len(fd)
        print(x + 1)
        fd = fd[x-1]
        print(fd)
        while x !=1:
            fd = fd[x-1]
            print(fd)

Ответы

▲ 0Принят

Вот такой подход в корне неверный

for line in info:
    fd = info.readlines()

Во-первых, так вы сразу же пропускаете первую строку файла. Во-вторых, на второй итерации этого цикла (и последующих тоже) в переменной fd будет пустой список. Вам нужно выбрать какой-то один из этих подходов. С вашей задачей такой код должен помочь:

with open('D:\\Errors.txt', 'r') as info:
    lines = info.readlines()

print(len(lines))
for line in lines:
    print(line, end='')