JavaScriptを有効にしてください

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

 ·  ☕ 4 分で読めます

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

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

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

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

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

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

1
pip install python-pptx

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


2. コードの概要と解説

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
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}")

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

各部分の解説

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

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

1
2
3
from pptx import Presentation
pptx_file_path = "sample.pptx"
prs = Presentation(pptx_file_path)
  • Presentationクラスを使用して、指定したファイルパスのPowerPointファイルを読み込みます。
  • pptx_file_pathには、読み込みたいPowerPointファイルのパスを指定します。

スライドのノートを抽出

1
2
3
4
5
6
7
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}")
  • prs.slidesでプレゼンテーション内のスライドにアクセスします。
  • enumerate関数を使用し、スライドを1から数えるためにstart=1を指定しています。
  • slide.has_notes_slideでノートが存在するかを確認し、存在する場合にはnotes_slide.notes_text_frame.textでノートのテキストを取得します。
  • slide_notes辞書に、スライド番号をキーとしてノートを格納します。

実行結果の確認

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

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

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


応用例

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

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

1
2
3
4
5
6
7
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ファイルからスライドごとのノートを簡単に抽出できるようになります。とくに発表資料や共有資料で、各スライドに関連するメモを確認したい場合に役立ちます。また、抽出したデータを他の形式に変換したり、分析のためにデータベースに保存するなど、幅広い応用が可能です。

  • python-pptxを使うことでプレゼンテーション資料の自動処理ができ、とくにビジネスシーンや教育の現場での効率化に貢献します。
  • 今回のサンプルコードを活用し、資料の自動分析や生成の基礎として役立ててください。

参考

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer