Copy & Paste Engineer

【Python】pptxファイルからノートを抽出する方法

【Python】pptxファイルからノートを抽出する方法

Pythonを使ってPowerPoint(.pptx)ファイルからスライドごとのノートを抽出する方法について解説します。プレゼンテーションの資料として、スライド内容と併せてノート情報を参照したいケースは多いと思います。このコードでは、python-pptxライブラリを使用してスライドのノートを抽出する方法を紹介します。

必要なライブラリと環境設定

このサンプルコードでは、PowerPointファイルを操作するためにpython-pptxライブラリを使用します。python-pptxはPowerPointファイルのスライド内容、ノート、画像などの操作が可能なライブラリです。

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

まず、python-pptxライブラリをインストールします。

pip install python-pptx

また、Google Colabなどのクラウド環境で実行する場合、ファイルパスの指定には注意が必要です。


2. コードの概要と解説

以下のコードでは、PowerPointファイル内の各スライドのノートを抽出して、ページ番号とノートを対応させた辞書に格納し、結果を出力します。

from pptx import Presentation

# PPTXファイルのパスを指定
pptx_file_path = "sample.pptx"

# プレゼンテーションを読み込み
prs = Presentation(pptx_file_path)

# 各スライドのノートを取得
slide_notes = {}  # ページ番号をキーに
for i, slide in enumerate(prs.slides, start=1):  # start=1で1からカウント
    notes = ""
    if slide.has_notes_slide and slide.notes_slide.notes_text_frame:
        notes = slide.notes_slide.notes_text_frame.text
    slide_notes[i] = notes  # ページ番号をキーとして格納
    print(f"Page {i} Notes: {notes}")

# スライドごとのノートがページ番号で格納されています

各部分の解説

コードの各部分について詳しく解説します。

プレゼンテーションファイルの読み込み

from pptx import Presentation
pptx_file_path = "sample.pptx"
prs = Presentation(pptx_file_path)

スライドのノートを抽出

slide_notes = {}
for i, slide in enumerate(prs.slides, start=1):
    notes = ""
    if slide.has_notes_slide and slide.notes_slide.notes_text_frame:
        notes = slide.notes_slide.notes_text_frame.text
    slide_notes[i] = notes
    print(f"Page {i} Notes: {notes}")

実行結果の確認

このコードを実行すると、各スライドごとにノートが表示されます。

Page 1 Notes: 〇〇についての詳細
Page 2 Notes: 次回の進行内容
Page 3 Notes: 質問と回答の一覧

slide_notes辞書には、ページ番号をキーとした形式でノートが格納されています。例えば、slide_notes[1]で1枚目のスライドのノートにアクセスできます。


応用例

抽出したノートをCSVファイルに出力

ノート情報をCSVファイルとして保存したい場合は、Pythonのcsvライブラリを使って出力できます。

import csv

with open("slide_notes.csv", "w", newline="") as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(["Slide Number", "Notes"])
    for slide_number, notes in slide_notes.items():
        writer.writerow([slide_number, notes])

これにより、スライド番号とノートのテキストがCSV形式で保存され、データの共有や確認がしやすくなります。

まとめ

この方法を使うことで、PythonでPowerPointファイルからスライドごとのノートを簡単に抽出できるようになります。とくに発表資料や共有資料で、各スライドに関連するメモを確認したい場合に役立ちます。また、抽出したデータを他の形式に変換したり、分析のためにデータベースに保存するなど、幅広い応用が可能です。

参考