2017-07-29 19 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

'|' contacts [z]に存在しなかった場合、argは1つの要素の配列として取得されます。その場合、arg [1]を呼び出すと明らかに失敗します。 – jitendra

答えて

0

エラーは、あなたの連絡先がすべて正しくフォーマットされていることをダブルチェックする必要があり

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

から来ています。このコードによると、各連絡先は

ユーザーのようにフォーマットする必要があります | ID |連絡先の各コンタクトはまさにそのようにフォーマットされていない場合、時間

は、このエラーがスローされます。あなたの分割( '|')機能が '|'分割する。

関連する問題