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'は1つの項目しか含んでいません。あなたが作業しているものを見つけるために 'print'sをいくつか追加しましたか?また、 'csv'モジュールはあなたが望むほとんどのことを行い、ファイル全体を読んで改行で分割するのは面倒で不必要です。 – jonrsharpe

+0

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

答えて

1

コードの次のビットは、どのようないくつかのラインdoesntの場合は「」各行は、少なくとも一つの配列を持っていることを前提として?

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]]) 
関連する問題