【Python】Word文書からテキストを抽出する方法

この記事では、Pythonを使用してWord文書からテキストを抽出する方法を紹介します。

ライブラリのインストール方法から基本的なコード例、テキストの整形方法までを解説します。

さらに、特定の条件下でのテキスト抽出方法やテーブル内のテキストを抽出する方法も学ぶことができます。

Pythonを使ってWord文書を効果的に処理する方法を学びましょう。

目次から探す

Pythonを使ったWord文書からテキストを抽出する方法

ライブラリのインストール

Word文書からテキストを抽出するためには、Pythonのpython-docxというライブラリを使用します。

まずは以下のコマンドを使って、python-docxライブラリをインストールします。

pip install python-docx

テキスト抽出の基本的なコード例

以下のサンプルコードは、Word文書からテキストを抽出する基本的な方法を示しています。

from docx import Document

# Word文書の読み込み
doc = Document('sample.docx')

# テキストの抽出
text = ''
for paragraph in doc.paragraphs:
    text += paragraph.text + '\n'

print(text)

テキストの整形方法

テキストを抽出した後、必要に応じて整形することができます。

例えば、不要な改行や空白を取り除くことで、テキストを整えることができます。

以下は、テキストを整形するサンプルコードです。

# テキストの整形
cleaned_text = ' '.join(text.split())  # 空白を除去

print(cleaned_text)

特定の条件下でのテキスト抽出方法

特定のスタイルやフォーマットに基づいたテキストの抽出方法

Word文書からテキストを抽出する際、特定のスタイルやフォーマットに基づいたテキストを抽出する方法があります。

例えば、見出しや箇条書きなど特定のスタイルで書かれたテキストを抽出したい場合、Pythonのライブラリを使用して簡単に実現することができます。

以下に、特定のスタイルやフォーマットに基づいたテキストの抽出方法を示します。

import docx

def extract_text_by_style(doc, style_name):
    extracted_text = ""
    for paragraph in doc.paragraphs:
        if paragraph.style.name == style_name:
            extracted_text += paragraph.text + "\n"
    return extracted_text

# ファイル読み込み
doc = docx.Document("sample.docx")

# 特定のスタイルに基づいたテキスト抽出
text = extract_text_by_style(doc, "Heading 1")
print(text)

上記のサンプルコードでは、extract_text_by_style関数を定義し、指定したスタイル名に基づいてテキストを抽出しています。

"Heading 1"というスタイル名が指定されており、このスタイルに基づいたテキストが抽出されます。

テーブル内のテキストを抽出する方法

Word文書にテーブルが含まれている場合、テーブル内のテキストを抽出する方法も重要です。

Pythonのライブラリを使用することで、テーブル内のテキストを簡単に取得することができます。

以下に、テーブル内のテキストを抽出する方法を示します。

import docx

def extract_text_from_table(doc):
    extracted_text = ""
    for table in doc.tables:
        for row in table.rows:
            for cell in row.cells:
                extracted_text += cell.text + "\n"
    return extracted_text

# ファイル読み込み
doc = docx.Document("sample.docx")

# テーブル内のテキスト抽出
text = extract_text_from_table(doc)
print(text)

上記のサンプルコードでは、extract_text_from_table関数を使用して、Word文書内のすべてのテーブルからテキストを抽出しています。

各セルのテキストが取得され、それらが連結されて抽出されたテキストとして表示されます。

目次から探す