我想用文本文件中的新值替换一些值。我有一个旧值列表(c)和一个新值列表(iteml)。 我的代码是:
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)
c[]被定义为全局的,有152个元素长,所以我不知道为什么在“行”=线路.更换(c[x],iteml[x])”索引器出现。你知道吗
当我使用“print(c)”或“print(iteml)”时,我得到了整个列表。。。我的失败在哪里?你知道吗
这个问题是因为每个项目中的项目数不一定相等,所以不应该像
152
那样硬编码一个数字。你知道吗你之前发布过同样的代码。你知道吗
试着从那个问题中找出我的答案:https://stackoverflow.com/questions/20217097/how-to-ignore-following-characters-in-a-line/20217594#20217594
C[]可能有152个元素长,但是当您在alt上迭代并且在每次迭代中以1递增x时,您的循环可能会进行超过152次迭代,因为这取决于alt的长度
一个可能的解决方案是在循环末尾添加and if语句:
因此,每当循环达到iteration num 152时,它将完成其执行,并且您将没有任何索引器。你知道吗
相关问题 更多 >
编程相关推荐