2017-07-29 141 views
0

我scirpt:錯誤indexError:列表索引超出範圍

if 'recheck' == msg.lower(): 
    with open('Output.txt','r') as rr: 
     contactArr = rr.readlines() 
     for v in xrange(len(contactArr) -1,0,-1): 
      num = re.sub(r'\n', "", contactArr[v]) 
      contacts.append(num) 
      pass 
     contacts = list(set(contacts)) 
     for z in range(len(contacts)): 
      arg = contacts[z].split('|') 
      if arg[1] == receiver.id : 
       userList.append(arg[0]) 
       timelist.append(arg[2]) 
     uL = list(set(userList)) 
     # print uL 
     for ll in range(len(uL)): 
      try: 
       getIndexUser = userList.index(uL[ll]) 
       timeSeen.append(strftime("%H:%M:%S", localtime(int(timelist[getIndexUser])/1000))) 
       recheckData.append(userList[getIndexUser]) 
      except IndexError: 
       conName.append('nones') 
       pass 

     contactId = client._getContacts(recheckData) 
     for v in range(len(recheckData)): 
      dataResult.append(contactId[v].displayName + '['+timeSeen[v]+']') 
      pass 
     # # print len(recheckData) 
     tukang = "V=ON Members=V\n[*]" 
     grp = '\n[*] '.join(str(f) for f in dataResult) 
     receiver.sendMessage("%s %s" % (tukang, grp)) 

但在終端錯誤:

Traceback (most recent call last): 
    File "echobot.py", line 117, in <module> 

    if arg[1] == receiver.id : 

IndexError: list index out of range 

你能幫助我嗎?

+1

如果'|'沒有出現在聯繫人[z]中,你將得到一個只有1個元素的數組。在這種情況下,調用arg [1]顯然會失敗。 – jitendra

回答

0

錯誤來自

arg = contacts[z].split('|') 
if arg[1] == receiver.id : 
    userList.append(arg[0]) 
    timelist.append(arg[2]) 

來,你應該仔細檢查您的聯繫人的所有格式正確無誤。 ID | | 根據這個代碼,每個觸點應該像

用戶格式化時間

如果每個接觸接觸是不完全格式化這樣一來,這個錯誤將被拋出。看起來你的split('|')函數沒有找到任何'|'分裂。

相關問題