我从一个文本文件中读取内容并将其存储在一个列表中(每行作为一个元素)(prizelist)。我也在为Winnerlist做同样的事情,这是另一个列表。
im使用一个zip函数来调用emailuser函数,每次赢家和电子邮件都存在于同一索引中。如果索引中不存在至少一个元素,则循环将停止。
调用该函数后,从列表中删除该奖品,从文件中删除所有内容,然后将列表内容写回文本文件(本质上是删除该元素)。
问题是要么
prizeList.remove(prize)
或
writeTo.write(prizes)
正在从文本文件中删除太多内容。除了在循环中每次迭代删除一个元素(从TXT文件)之外,它还删除了更多的元素。
以下是我的尝试:
for prize, winner in zip(prizeList, emailList):
print(f'{prize} goes to {winner}')
emailUserWithPrize(winner, prize, prizeType)
print("Before: ")
print(prizeList)
prizeList.remove(prize)
file.close()
writeTo = open(prizeFile, "w")
prizes = ""
for i in range(len(prizeList)):
prizes = prizeList[i]
writeTo.write(prizes)
print("After:")
print(prizeList)
if len(prizeList) < 1:
print("No more prizes for " + prizeType)