周五快乐。这个谜题真的是我的脖子上的痛苦,任何建议将不胜感激。非常感谢。
我在使用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
到目前为止,我尝试的解决方案是 - 关闭服务器套接字并再次打开它,然后运行此客户端代码。它工作时间最长,但我认为这只是一种临时方式,我敢打赌有一些更好的解决方法。