Код: Выделить всё
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)
Подробнее здесь: https://stackoverflow.com/questions/752 ... a-for-loop