Ch.1 Python 라이브러리 15선
python-docx — 코드로 Word 문서 생성
핵심 내용
python-docx는 파이썬으로 Word 문서를 자동 생성합니다
한 줄 요약: .docx 파일을 코드로 만들어서 제목, 본문, 표, 이미지까지 넣는 라이브러리. 실생활 비유: '자동화된 타이피스트'입니다. 양식은 한 번만 만들어두면, 이름·날짜·금액만 바꿔서 100개든 1000개든 똑같은 문서를 찍어냅니다. Word를 열 필요도 없어요.
반복 문서 작업을 코드로 해결
수동 (Word): 양식 열기 → 이름 지우기 → 새 이름 입력 → 날짜 수정 → 다른 이름으로 저장. 100명이면 100번 반복.
코드 (python-docx): 이름 리스트 준비 → for문 돌리기 → 100개 파일 자동 생성. 1분이면 끝.
설치 한 줄, 문서 생성도 세 줄
pip install python-docxfrom docx import Document
doc = Document()
doc.add_heading('첫 번째 문서', level=1)
doc.add_paragraph('python-docx로 만든 문서입니다.')
doc.save('첫문서.docx')
print('문서 저장 완료!')실행 결과: 현재 폴더에 '첫문서.docx'가 생성됩니다. 열어보면 큰 제목 '첫 번째 문서'와 본문 한 줄이 들어가 있어요. Word 없이도 .docx 파일이 만들어지는 게 핵심입니다.
AI에게 양식까지 구체적으로 요청하세요
좋은 프롬프트 예시 "python-docx로 근로계약서 양식 만들어줘. 제목은 24pt 가운데 정렬, 갑(회사)·을(근로자) 정보를 2열 표로 넣고, 계약 조건 5개 항목은 번호 리스트로, 맨 아래 서명란(갑___ 을___)도 추가해줘."
프롬프트 변형 • "이름 리스트를 받아서 각각 다른 파일로 계약서 100개 생성해줘" • "기존 템플릿.docx를 열어서 {이름}, {날짜} 부분만 교체해줘" • "표의 첫 행은 회색 배경 + 굵은 글씨로 해줘"
from docx import Document
from docx.shared import Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
doc = Document()
# 제목 (24pt, 가운데 정렬)
title = doc.add_heading('근로계약서', level=1)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
# 갑·을 정보 표
table = doc.add_table(rows=2, cols=2)
table.cell(0, 0).text = '갑 (회사)'
table.cell(0, 1).text = '주식회사 OO'
table.cell(1, 0).text = '을 (근로자)'
table.cell(1, 1).text = '홍길동'
# 서명란
doc.add_paragraph('\n갑: ___________ 을: ___________')
doc.save('근로계약서.docx')수료증 100장 일괄 생성기
from docx import Document
from docx.shared import Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
# 수강생 명단
students = ['김민수', '이지은', '박준호', '최서연', '정하늘']
for name in students:
doc = Document()
# 제목
title = doc.add_heading('수 료 증', level=0)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
# 수강생 이름
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run(name)
run.font.size = Pt(28)
run.bold = True
# 본문
body = doc.add_paragraph()
body.alignment = WD_ALIGN_PARAGRAPH.CENTER
body.add_run('\n위 사람은 파이썬 기초 과정을 수료하였음을 증명합니다.')
# 날짜 + 기관명
footer = doc.add_paragraph()
footer.alignment = WD_ALIGN_PARAGRAPH.CENTER
footer.add_run('\n2026년 3월 14일\n코딩아카데미 원장')
doc.save(f'수료증_{name}.docx')
print(f'{len(students)}장의 수료증 생성 완료!')실행 결과: '수료증_김민수.docx', '수료증_이지은.docx'… 이름별로 파일이 생성됩니다. 실제 프로젝트에서는 엑셀에서 명단을 읽어오거나, 데이터베이스에서 가져와서 수백 장을 한 번에 만들 수 있어요.
1. 명단 준비: 엑셀/CSV에서 이름 리스트를 가져온다
2. 템플릿 설계: 제목·본문·서명란 등 양식을 코드로 정의
3. for문 반복: 이름마다 새 문서 생성 → 이름 삽입 → 저장
4. 일괄 완성: 폴더에 수백 개 .docx 파일이 자동 생성
python-docx에서 새 문서를 만드는 코드는?
핵심 용어
📝 문서 생성
빈 문서부터 시작해서 제목, 본문, 표를 코드로 추가
📄 템플릿 활용
기존 .docx 양식을 열어서 특정 부분만 교체
🎨 서식 지정
글꼴, 크기, 굵기, 색상, 정렬 등 Word의 서식을 코드로 적용
📜 계약서 대량 생성
이름·날짜만 바꿔서 근로계약서, 임대차계약서 100장 생성
🏅 수료증·상장 발급
수강생 명단으로 수료증을 한 번에 만들기
📊 보고서 자동화
데이터베이스에서 가져온 수치로 월간 보고서 작성
핵심 정리
- 1python-docx는 Word 문서를 코드로 생성·수정하는 라이브러리
- 2Document() → add_heading() → add_paragraph() → add_table() → save()가 기본 흐름
- 3for문과 결합하면 계약서·수료증·보고서 수백 장을 1분 안에 생성
- 4AI에게 양식(글꼴, 정렬, 표)까지 구체적으로 요청하면 실전급 코드를 바로 받을 수 있음
퀴즈와 인터랙션으로 더 깊이 학습하세요
play_circle인터랙티브 레슨 시작