IndexError: вывести индекс из списка за пределы диапазона при попытке прочитать текстовый файл - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь сделать слово экономящим и читающим из ввода (что-то вроде словаря) Мой код:

if path.exists("data/inputs/" + word2 + ".txt"):
    file = open("data/inputs/" + word2 + ".txt", "r")

    for line in file:
        fields = line.split("; ")
        field1 = fields[0]
        answer=[field1]
        if fields[1]!="":
            field1 = fields[1]
            answer = [field1, field2]

Ошибка:

    if fields[1]!="":
IndexError: list index out of range

Я пытался сделать это с диапазоном, получил ошибку "должен быть int или index". Можете ли вы сказать мне, как работать с этими индексами и заставить его работать, пожалуйста?

1 Ответ

0 голосов
/ 21 апреля 2020

Это означает, что по крайней мере одна строка вашего файла не содержит ";", поэтому результат split('; ') содержит только один элемент ... поэтому вызов fields[1] является ошибкой!

Если вы хотите проверить, есть ли у вас второе поле в строке, вы должны заменить if fields[1] != "" на if len(fields) > 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...