Word(.docx) 문서는 서식이 적용된 텍스트를 세 가지 객체 계층으로 감싸고 있습니다. 최하위 수준은 Run 객체, 중간 수준은 Paragraph 객체, 최상위 수준은 Document 객체입니다.
따라서 일반 텍스트 편집기로는 이런 문서를 직접 편집하기 어렵습니다. 대신 파이썬에서는 python-docx 모듈을 사용해 Word 문서를 자유롭게 생성하고 조작할 수 있습니다.
시작하기 전에 알아야 할 객체 구조
- Document(최상위): 문서 전체를 나타내며, 모든 작업의 시작점입니다.
- Paragraph(중간): 하나의 문단을 나타내며, 문서 안에 여러 개가 존재할 수 있습니다.
- Run(최하위): 문단 안에서 굵게, 기울임, 밑줄 등 동일한 서식이 적용된 텍스트 조각을 의미합니다.
설치 및 기본 사용법
- 먼저 서드파티 모듈인
python-docx를 설치합니다. 터미널에서pip install python-docx명령어를 실행하세요. - 설치 후에는 반드시
python-docx가 아닌docx를 임포트해야 합니다. docx.Document클래스를 사용해 Word 문서 작업을 시작합니다.
예제 코드
# python-docx가 아닌 docx를 임포트
import docx
# 워드 문서 인스턴스 생성
doc = docx.Document()
# 수준 0(가장 큰 제목)의 제목 추가
doc.add_heading('문서의 제목', 0)
# 문단을 추가하고 객체를 변수에 저장
doc_para = doc.add_paragraph('여기에 문단 내용이 들어갑니다. ')
# run을 추가해 굵게, 기울임 등의 스타일 적용
doc_para.add_run('안녕하세요, 여기는 굵게 표시됩니다.').bold = True
doc_para.add_run(', 그리고 ')
doc_para.add_run('이 부분은 기울임꼴입니다.').italic = True
# 새 페이지를 시작하기 위한 페이지 나누기 추가
doc.add_page_break()
# 수준 2의 소제목 추가
doc.add_heading('수준 2 제목', 2)
# 워드 문서에 그림도 추가 가능 (width 매개변수는 선택 사항)
doc.add_picture('그림_파일_경로')
# 문서를 원하는 위치에 저장
doc.save('저장할_문서_경로.docx')위 코드를 실행하면 제목, 서식이 적용된 문단, 페이지 나누기, 소제목, 이미지가 포함된 완전한 Word 문서가 생성되어 지정한 경로에 저장됩니다. 이처럼 python-docx를 활용하면 보고서 자동화, 문서 템플릿 생성 등 다양한 업무를 손쉽게 처리할 수 있습니다.