[python] 파이썬으로 워드 문서 내용 삭제하기

파이썬을 사용하여 워드 문서 내에서 특정 내용을 삭제하고 싶다면, python-docx 라이브러리를 사용할 수 있습니다. 이 라이브러리는 워드 문서를 다루는데 도움이 되는 다양한 기능을 제공합니다.

python-docx 설치하기

먼저, python-docx를 설치해야 합니다. 다음 명령을 사용하여 파이썬 패키지를 설치할 수 있습니다.

pip install python-docx

워드 문서 열기

워드 문서를 열기 위해 docx 모듈을 import 해야 합니다.

from docx import Document

이제 워드 문서를 열기 위해 Document 객체를 생성합니다.

doc = Document('문서이름.docx')

특정 내용 삭제하기

doc 객체를 사용하여 원하는 텍스트를 삭제할 수 있습니다. 예를 들어, “삭제할 내용”이라는 텍스트를 모두 삭제하고 싶을 때는 다음과 같이 코드를 작성합니다.

target_text = "삭제할 내용"

for para in doc.paragraphs:
    if target_text in para.text:
        runs = para.runs
        results = []
        for run in runs:
            if target_text not in run.text:
                results.append(run.text)
        
        para.text = "".join(results)

위의 코드에서는 paragraphs 속성을 사용하여 워드 문서의 모든 단락을 가져옵니다. 그런 다음, runs 속성을 사용하여 각 단락의 텍스트를 가져옵니다. 만약 특정 텍스트가 단락 내에 존재한다면, 해당 단락의 텍스트와 일치하지 않는 부분만을 따로 모아서 다시 설정하게 됩니다. 이렇게 하면 해당 텍스트가 삭제된 워드 문서를 얻을 수 있습니다.

변경된 내용 저장하기

삭제된 내용을 포함하는 워드 문서를 저장하기 위해 save 메소드를 호출합니다.

doc.save('변경된문서이름.docx')

전체 예제 코드

아래에는 전체 예제 코드를 제공합니다.

from docx import Document

def delete_text_from_doc(target_text, doc_name):
    doc = Document(doc_name)

    for para in doc.paragraphs:
        if target_text in para.text:
            runs = para.runs
            results = []
            for run in runs:
                if target_text not in run.text:
                    results.append(run.text)

            para.text = "".join(results)

    doc.save('new_' + doc_name)

위의 코드를 사용하면 특정 텍스트가 삭제된 새로운 워드 문서를 생성할 수 있습니다. 함수를 호출할 때는 target_text에 삭제하고 싶은 텍스트를 입력하고, doc_name에는 원본 워드 문서의 파일명을 입력하시면 됩니다.

참고자료