首页 > 解决方案 > 文件替换()方法

问题描述

我有一封电子邮件要发送给 6 个人。我需要为每个收件人创建一个单独的 txt 文件,并"[name]"用每个收件人姓名替换字母。这是我的代码,我被卡住了。当我尝试替换"name"时,我收到此错误:

AttributeError: '_io.TextIOWrapper' object has no attribute 'replace'

请问有什么帮助吗?

我的代码如下:

with open("Input/Letters/starting_letter.txt") as l:
        the_letter = l.readlines()

with open("Input/Names/invited_names.txt") as names:
    the_names = names.readlines()

for letter in range(6):
    with open(f"Output/letter_{letter}.txt", mode="a") as file:
        file.writelines(the_letter)
        file.replace("name", f"{the_names[letter]}")

标签: pythonemail

解决方案


您应该the_letter在写入文件之前进行替换。

没有必要将字母分成几行。将其作为单个字符串读取,这样您就可以在没有循环的情况下替换整个内容。

你忘了[]在你的.replace()电话。

with open("Input/Letters/starting_letter.txt") as l:
    the_letter = l.read()

with open("Input/Names/invited_names.txt") as names:
    the_names = names.readlines()

for letter, name in enumerate(the_names)
    with open(f"Output/letter_{letter}.txt", mode="a") as file:
        file.write(the_letter.replace("[name]", name.strip)

推荐阅读