메일 머지
똑같은 내용인데,
특정 단어만 바꾸어서 여러명에게 편지나 메일을 보내야 하는 경우가 있다.
이럴 때,
파이썬을 이용하면 시간을 절약할 수 있다.
업무 자동화 이야기는 많이 들어봤을 것이다.
파이썬을 이용해 반복적인 업무를 간단히 처리해서
시간을 벌 수 있다는 거다.
오늘은 메일머지의 기본 기능인
특정 단어만 바꾸어 문서를 대량 생산해보는 방법을 구현한다.
오늘의 미션
이름만 바꾸어 여러 장의 글 만들기
- hierarchy
- text.txt
- names.txt
1. names.txt 파일을 불러온다.
with open("./input/Names/names.txt") as file:
name_list = file.readlines()
print(name_list)
파일 안의 내용이 한 줄씩 리스트형태로 반환되었다.
그런데 한 요소당 한 줄씩 띄어쓰기(\n)가 있어, 공백이 발생한다.
2. 공백 제거
공백을 제거하는 방법은 다양하다.
1) replace()
for name in name_list:
name = name.replace("\n", '')
print(name)
2) strip()
for name in name_list:
name = name.strip()
print(name)
3. 글 불러오기
with open("./input/Letters/text.txt") as letter:
letter = letter.read()
4. 글에서 이름 바꾸기
아래의 원본에서 Olivia 대신 다른 이름을 넣으려고 한다.
replace 함수를 써서 바꿔준다.
old_name = "[name]"
for name in name_list:
name = name.strip()
letter = letter.replace(old_name, name)
5. 새롭게 저장할 파일 명과 위치 정하기
파일 경로를 만드는 방법을 두 가지로 소개한다.
1) 문자열 합치기
old_name = "Olivia"
for name in name_list:
name = name.strip()
letter = letter.replace(old_name, name)
location = "./output/ReadyToSend/" + name + ".txt"
print(location)
2) f스트링으로 넣기
with open(f"./output/Complete!/{name}.text", mode="w") as mail:
mail.write(letter)
<최종완성>
with open("./input/Names/names.txt") as file:
name_list = file.readlines()
print(name_list)
with open("./input/Letters/text.txt") as letter:
letter = letter.read()
old_name = "Olivia"
for name in name_list:
name = name.strip()
letter = letter.replace(old_name, name)
with open(f"./output/Complete!/{name}.text", mode="w") as mail:
mail.write(letter)
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[25-2 파이썬] pandas 판다스로 데이터처리하기 (0) | 2022.09.06 |
---|---|
[25-1 파이썬] csv 내장라이브러리로 CSV파일 다루기 (0) | 2022.09.04 |
[24-9 파이썬] strip() (0) | 2022.09.04 |
[24-8 파이썬] replace(old, new) (0) | 2022.09.04 |
[24-7 파이썬] 파일 읽기 read(), readline(), readlines() (0) | 2022.09.04 |