Problem mit einer for-Schleife

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Kurtosis
User
Beiträge: 55
Registriert: Samstag 11. Dezember 2010, 14:32

Hallo,

ich habe ein kleines Programm, wo aus einer Textdatei Zahlen eingelesen werden und diese dann statistisch ausgewertet werden sollen. Ich habe mal den Programmcode unten dazugeschrieben. Das Programm habe ich auch schon für andere Textdateien mit logischerweise anderen Zahlen gemacht und da hat immer alles prima funktioniert. Nun bekomme ich eine folgende Fehlermeldung:

Code: Alles auswählen

     43 for Zeile in allezeilen:
     44 	w = Zeile.split()
---> 45 	xarray[i] = float(w[0])
     46 	i+=1
     47 

IndexError: list index out of range

Kann das vielleicht daran liegen, dass in der Textdatei zuviele Zahlen bzw. Einträge vorhanden sind? Bisher waren es immer unter 2000 Zahlen. Jetzt habe ich mal 6000 genommen.
Wäre cool, wenn jemand eine Lösung für das Problem kennt oder zumindest weiß, wieso die Fehlermeldung kommt!

Code: Alles auswählen

# Öffne die Textdatei mit den Messdaten
daten = open("Messdaten.txt")

# Lese die Daten wieder ein
allezeilen = daten.readlines()

# Zähle die Anzahl der Messzeilen
nData = len(allezeilen)

# Erzeuge einen Array
xarray = np.zeros(nData)

# for-Schleife 1
i = 0
for Zeile in allezeilen:
	w = Zeile.split()
	xarray[i] = float(w[0])
	i+=1
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

Moin,

du gehst davon aus, dass es in jeder Zeile was zu splitten gibt. Wenn eine Zeile in der Datei aber nur aus Whitespace besteht, dass gibt die Zeile.split() eine leere Liste zurück. Wenn du dann versuchst auf ein Element in der Liste zuzugreifen, dann bekommst du einen IndexError. Prüfe einfach nach der Zeile 44, ob überhaupt etwas in der Liste ist (if w) und handle entsprechend.

Gruß,
Manuel
Antworten