Python дает индекс вне диапазона при чтении файла табличных данных - PullRequest
0 голосов
/ 29 ноября 2018

Для задания мне нужно написать код в Processing, чтобы прочитать из файла табличных данных.Каждая строка файла выглядит как "Name, 242, 353, 5325, 35352", поэтому в списке должно быть пять элементов, и если я его распечатываю, я вижу все пять.Но когда я пытаюсь сделать x = data[1], он выдает ошибку индекса вне диапазона.Вот мой код:

f = open('popdata.txt', 'r')

for line in f:

    data = line.rstrip('\n')
    data = data.split(',')


    city = data[0]
    x = int(data[1])
    y = int(data[2])
    old = float(data[3])
    new = float(data[4])

Редактировать: Если я сделаю

 print(data)

, то напечатает:

"['Halifax', '447', '349', '220', '320']"

Если я сделаю:

print(city)

он печатает:

Halifax

Но если я что-то делаю с индексом 1 или выше, он не работает?

Редактировать: Iдобавили строку if len(data) == 5: после разбиения и теперь она работает!

1 Ответ

0 голосов
/ 29 ноября 2018

Вы можете попробовать if else условие для этого конкретного индекса для обработки исключения

f = open('popdata.txt', 'r')

for line in f:

    data = line.rstrip('\n')
    data = data.split(',')


    city = data[0] if data[0:] else "" #inside ""(double quotes) add any value you want to return in case data is not available.
    x = int(data[1]) if data[1:] else ""
    y = int(data[2]) if data[2:] else ""
    old = float(data[3]) if data[3:] else ""
    new = float(data[4]) if data[4:] else ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...