2016-04-25 5 views
0

Wenn ich runserver gibt es eine IndexError: "Liste Zuordnungsindex außerhalb des Bereichs". Wegen meiner Datei rasp.py in Zeile 15, aber ich habe den Grund nicht gefunden.Warum habe ich einen IndexError bei der Ausführung meines Django-Projekts?

rasp.py

#!/usr/bin/env python 
def foo () : 
    tab= [ ] 
    i = 0 
    for i in range(12): 
     tfile = open("/sys/bus/w1/devices/28-000007101990/w1_slave") 
     text = tfile.read() 
     tfile.close() 
     secondline = text.split("\n")[1] 
     temp = secondline.split(" ")[9] 
     temperature = float(temp[2:]) 
     temperature = temperature/1000 
     mystr = str(temperature) 
     mystring = mystr.replace(",",".") 
     tab [i] = mystring 
    return tab 

Antwort

0

Sie empfangen IndexError, da Sie versuchen, auf einen Index zuzugreifen, der nicht in der Liste vorhanden ist.

Statt durch Index zugreifen, können Sie die Methode verwenden append:

#!/usr/bin/env python 
def foo () : 
    tab= [] 
    for i in range(12): 
     tfile = open("/sys/bus/w1/devices/28-000007101990/w1_slave") 
     text = tfile.read() 
     tfile.close() 
     secondline = text.split("\n")[1] 
     temp = secondline.split(" ")[9] 
     temperature = float(temp[2:]) 
     temperature = temperature/1000 
     mystr = str(temperature) 
     mystring = mystr.replace(",",".") 
     tab.append(mystring) 
    return tab 
0

tab ist eine leere Liste, was bedeutet, dass es keine gültige Indizes hat, weshalb tab[i] = mystring eine IndexError wirft. Verwenden Sie tab.append(mystring), die den Wert an das Ende der Zeichenfolge anhängen wird

Verwandte Themen