为什么在运行我的Django项目时会出现IndexError?

时间:2016-04-25 15:37:58

标签: python

当我运行runserver时,它返回IndexError:“列表赋值索引超出范围”。 因为第15行我的文件rasp.py但我找不到原因。

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

2 个答案:

答案 0 :(得分:0)

tab是一个空列表,这意味着它没有有效的索引,这就是tab[i] = mystring引发IndexError的原因。使用tab.append(mystring),它会将值附加到字符串

的末尾

答案 1 :(得分:0)

您收到IndexError,因为您正在尝试访问列表中不存在的索引。

您可以使用方法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