簡體   English   中英

python IndexError:字符串索引超出范圍

[英]python IndexError: string index out of range

我得到IndexError:字符串索引超出范圍。 文件“ document_words”中的每一行都以“ -99”結尾。 所以我認為錯誤可能是因為“ -99”未轉換為int。 但是我不確定。 如果是這種情況,我如何將“ -99”轉換為int並從循環中中斷。

以下是我的代碼:

words=open('words','r')
image=open('document_words','r')
data=open('input','a')

linecount=0

for line in image:
    if line.strip():
        linecount+=1

image.read()
image.seek(0,0)
while linecount>0:
    line1=image.readline().split()
    for entry in line1:
        num=int(entry)
        if (num<0):
            print("break from loop")
            break
        else:
            tag=words.readline()[num]
            data.write(str(tag)+' ')
    data.write('\n')
    linecount=linecount-1

data.flush()
data.close()
words.close()
image.close()

您沒有告訴我們哪條線失敗,但這看起來很明顯

tag = words.readline()[num]

因此num超出了范圍。 我不認為它是-99因為在這種情況下它應該會損壞。 您可以添加一個try / except來幫助追蹤

try:
    tmp = words.readline()
    tag = tmp[num]
except IndexError, e:
    print tmp, num

編輯:看起來您正在混合制表符和空格的縮進。 除非您使用8個字符制表位,否則這是一個禁忌

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM