Как я могу создать новый файл в цикле forPython

Программы на Python
Гость
Как я могу создать новый файл в цикле for

Сообщение Гость »

Код: Выделить всё

for name in names:
with open(f"/Users/XYZ/Desktop/technology/z 100 days of code z/python/Day 24 Mail+Merge+Project+Start/Mail Merge Project Start/Output/ReadyToSend/new.txt") as file:
final = letter
final.replace("[name]", name)
file.write(final)

пытаюсь создать новый файл для каждого имени в списке имен, но не получается. получая следующую ошибку. спасибо.
OSError: [Errno 22] Неверный аргумент: '/Users/XYZ/Desktop/technology/z 100 дней кода z/python/Day 24 Mail+Merge+Project+Start /Mail Merge Project Start/Output/ReadyToSend/Aang\n.txt'
ожидал, что для каждого имени будет создан новый файл. я делаю это неправильно или есть другой способ добиться того, чего я ожидаю.
РЕДАКТИРОВАТЬ: спасибо за ответы. изначально у меня была строка f, заканчивающаяся на "/ReadyToSend/{name}.txt", ожидая, что новый файл будет создан с использованием имени из цикла for.
все равно получаю ошибку. я добавил полный код.

Код: Выделить всё

with open("/Users/XYZ/Desktop/technology/z 100 days of code z/python/Day 24 Mail+Merge+Project+Start/Mail Merge Project Start/Input/Names/invited_names.txt") as invited_names_file:
names = invited_names_file.readlines()

with open("/Users/XYZ/Desktop/technology/z 100 days of code z/python/Day 24 Mail+Merge+Project+Start/Mail Merge Project Start/Input/Letters/starting_letter.txt") as starting_letter_file:
letter = starting_letter_file.read()

filename = "/Users/XYZ/Desktop/technology/z 100 days of code z/python/Day 24 Mail+Merge+Project+Start/Mail Merge Project Start/Output/ReadyToSend/new.txt"

for name in names:
with open(file=filename.replace("new", name), mode="w") as file:
final = letter
final.replace("[name]", name)
file.write(final)
ФИНАЛ: спасибо за помощь! разобрался и заработало! но если у кого-то есть предложения по очистке всего этого, пожалуйста, дайте мне знать. окончательный код приведен ниже. для каждого имени был создан новый файл, и содержимое каждого файла направляется человеку, в честь которого назван файл, как и было желательно.

Код: Выделить всё

with open("/Users/XYZ/Desktop/technology/z 100 days of code z/python/Day 24 Mail+Merge+Project+Start/Mail Merge Project Start/Input/Names/invited_names.txt") as invited_names_file:
names = invited_names_file.read().split('\n')

with open("/Users/XYZ/Desktop/technology/z 100 days of code z/python/Day 24 Mail+Merge+Project+Start/Mail Merge Project Start/Input/Letters/starting_letter.txt") as starting_letter_file:
letter = starting_letter_file.read().strip('\n')

filename = "/Users/XYZ/Desktop/technology/z 100 days of code z/python/Day 24 Mail+Merge+Project+Start/Mail Merge Project Start/Output/ReadyToSend/new.txt"

for name in names:
with open(file=filename.replace("new", name), mode="w") as file:
final = letter
final = final.replace("[name]", name)
file.write(final)
print(final)
не совсем уверен в том, что делает функция Strip(), но она работает, поэтому, если кто-то сможет это прояснить, я буду признателен!

Подробнее здесь: https://stackoverflow.com/questions/752 ... a-for-loop

Вернуться в «Python»