2016-12-31 6 views
-1

Я пытаюсь построить график, беря координаты из файла. При этом я наткнулся на ошибку. Heres код:IndexError: индекс индекса за пределами диапазона - Python 3.5.1

import matplotlib 
import matplotlib.pyplot as pt 

    x = [] 
    y = [] 
file = open(r"E:\test.txt", "r") 
data = file.read().split("\n") 
for i in data: 
val = i.split(" , ") 
x.append([val[0]]) 
y.append([val[1]]) 
    print("Data = " + str(data)) 
    print("X Axis = " + str(x)) 
    print("Y Axis = " + str(y)) 

И я получаю эту ошибку:

Traceback (most recent call last): 
    File "E:/PROGRAMS/PyCharm 2016 IDE/PycharmProjects/Apps/Matplot.py", line 11, in <module> 
    y.append([val[1]]) 
    IndexError: list index out of range 
+1

Вы можете исправить вмятины вашего кода первого? –

+0

Очевидно, что 'val' содержит только один элемент. Вы добавили некоторые 'print', чтобы узнать, с чем работаете? Также обратите внимание, что модуль 'csv' делает большую часть того, что вы хотите, и неудобно и не нужно читать весь файл и разбивать его на разрывы строк самостоятельно. – jonrsharpe

+0

http://stackoverflow.com/help/someone-answers – e4c5

ответ

1

Следующая часть кода предполагает, что каждая строка имеет по крайней мере одну последовательность «» что если какая-то линия оленья кожа?

val = i.split(" , ") 
x.append([val[0]]) 
y.append([val[1]]) 

Более оборонительный подход

val = i.split(" , ") 
if len(val) == 2: 
    x.append([val[0]]) 
    y.append([val[1]]) 

 Смежные вопросы

  • Нет связанных вопросов^_^