IndexError:列出索引超出客户端范围

时间:2017-03-17 18:42:40

标签: python python-2.7

周五快乐。这个谜题真的是我的脖子上的痛苦,任何建议将不胜感激。非常感谢。

我在使用Windows 7的Python 2.7上。 我通过模型 - 客户端模型(在客户端)发送一条命令到设备并等待来自设备的响应(充电状态)。然后我想从返回列表中提取一些值。而且好!弹出错误! " IndexError:列出索引超出范围"。

我的Python代码如下:

    def chrg_Test():
        try:
            self.s.send(getchar)
            time.sleep(2)
        except:
            print 'Chrg cmd sent failed...'
        print 'Start Chrg Test...'
        result = self.s.recv(1024)
        time.sleep(3)
        ExtPwrPresent = (result.split('\n'))[11]
        print 'ExtPwrPresent is: ', ExtPwrPresent
    chrg_Test()

错误是:

ExtPwrPresent = (result.split('\n'))[11]
IndexError: list index out of range

其他一些细节:有线是什么,错误弹出50%或更多。休息时间很好。所以它有点发脾气,随意打开和关闭,这就像一个讨厌的宝贝〜正确的输出应该是这样的:

Result list is: 
getchar 
Label,Value
FuelPercent,31
BatteryOverTemp,0
ChargingActive,0
ChargingEnabled,0
ConfidentOnFuel,0
OnReservedFuel,0
EmptyFuel,0
BatteryFailure,0
ExtPwrPresent,0
ThermistorPresent,1
BattTempCAvg,23
VBattV,14.42
VExtV,0.00
Charger_mAH,0
Discharge_mAH,200


ExtPwrPresent is:  ExtPwrPresent,0

到目前为止,我尝试的解决方案是 - 关闭服务器套接字并再次打开它,然后运行此客户端代码。它工作时间最长,但我认为这只是一种临时方式,我敢打赌有一些更好的解决方法。

0 个答案:

没有答案