Я хочу заменить некоторые значения новыми значениями в текстовом файле. У меня есть список со старыми значениями (c) и список с новыми значениями (iteml). мой код:Почему я получаю ошибку «IndexError: list index out the range»?
def write_file(self):
iteml=[]
for row in range(152):
item=self.model.item(row,1)
item.text()
text=str(item.text())
iteml.append(text)
alt=open("file","r")
neu=open("newfile","w")
x=0
for line in alt:
if line[0] == "|":
neu.write(line)
if line[0] != "|":
line=line.replace(c[x],iteml[x])
x=x+1
neu.write(line)
с [] определяется глобальными, и имеет длину 152 элементов, так что я понятия не имеют, почему у "линия = line.replace (с [х], iteml [х])" появляется indexerror.
Когда я использую «print (c)» или «print (iteml)», я получаю весь список ... где моя ошибка?
почему бы вам не печатать й на линии перед вашей ошибкой и увидеть, что его значение ... Im предполагают, что это больше, чем размер массива ... –
Количество строк в файле чтения больше 152, не так ли? – Deck
Да, ты прав. если я печатаю x непосредственно перед ошибкой, x подсчитывает до 152. yep, файл чтения имеет более 152 строк. – Hubschr