我无法使用此代码创建多个文件,这是怎么回事?

I am unable to create multiple files with this code, what is wrong?

提问人:Python Asker 提问时间:8/12/2022 更新时间:8/12/2022 访问量:30

问:

因此,我正在尝试编写一个程序,该程序从列表中获取名称并将其添加到字母中。为字母的每个名称创建一个文本文件,但是代码似乎在这一点上停止工作。

letter = []
names = []
file = open("Input/Letters/starting_letter.txt", "r")
letter = file.readlines()
file.close()
name1 = open("Input/Names/invited_names.txt", "r")
names = name1.readlines()
name1.close()
for name in names:
    create_letter = open(f"{name}.txt", "w")
    for line in letter:
        line = line.replace("[name],", f"{name},")
        create_letter.write(line)
    create_letter.close()

我收到错误消息

Traceback (most recent call last):
  File "C:\Users\Default User\PycharmProjects\Mail Merge Project Start\main.py", line 10, in <module>
    create_letter = open(f"{name}.txt", "w")
OSError: [Errno 22] Invalid argument: 'Aang\n.txt'

我创建文件的方式有问题吗?

python 文件 文本

评论

1赞 mozway 8/12/2022
文件名中不能有换行符,请将其删除

答:

1赞 mozway 8/12/2022 #1

文件名中不能包含换行符。它在您的操作系统/文件系统中无效。

使用以下命令删除它们:

open(f"{name.strip()}.txt", "w")

艺术

open(f"{name.replace('\n', '')}.txt", "w")