with open("./Input/Names/invited_names.txt") as f:
names = f.readlines()
with open("./Input/Letters/starting_letter.txt", mode="r+") as f:
letter = f.read()
for name in names:
letter = letter.replace("[name]", name)
f.write(letter)
我正在尝试将字符串 [name] 替换为列表中存储的实际名称。问题是在所有迭代中只有名字替换了 [name] 字符串。
你的问题不是很清楚,如果你提供一下文件内容会更有帮助。
我认为你的问题是,当你初始化字母时,它会存储为字符串,并且当你使用
.replace()
方法时,所有实例都会在循环的第一次迭代中被替换。在下一次迭代中,所有实例都已被替换,因此 .replace()
方法将不执行任何操作。
.replace()
函数有一个重载,您可以指定要替换的最大出现次数,因此您应该使用letter = letter.replace("[name]", name)
而不是
letter = letter.replace("[name]", name, 1)