パワーポイント (pptx) をテキストファイルに変換(Python 3.10 対応)(Python を使用)(Windows 上)
【目次】
前準備
Python 3.12 のインストール(Windows 上) [クリックして展開]
以下のいずれかの方法で Python 3.12 をインストールする。Python がインストール済みの場合、この手順は不要である。
方法1:winget によるインストール
管理者権限のコマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。
winget install -e --id Python.Python.3.12 --scope machine --silent --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 AssociateFiles=1 InstallLauncherAllUsers=1"
--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動すると PATH が自動的に設定される。
方法2:インストーラーによるインストール
- Python 公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンから Windows 用インストーラーをダウンロードする。
- ダウンロードしたインストーラーを実行する。
- 初期画面の下部に表示される「Add python.exe to PATH」に必ずチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから
pythonコマンドを実行できない。 - 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。
インストールの確認
コマンドプロンプトで以下を実行する。
python --version
バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。
AIエディタ Windsurf のインストール(Windows 上) [クリックして展開]
Pythonプログラムの編集・実行には、AIエディタの利用を推奨する。ここでは、Windsurfのインストールを説明する。Windsurf がインストール済みの場合、この手順は不要である。
管理者権限のコマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。
winget install -e --id Codeium.Windsurf --scope machine --accept-source-agreements --accept-package-agreements --override "/VERYSILENT /NORESTART /MERGETASKS=!runcode,addtopath,associatewithfiles,!desktopicon"
powershell -Command "$env:Path=[System.Environment]::GetEnvironmentVariable('Path','Machine')+';'+[System.Environment]::GetEnvironmentVariable('Path','User'); windsurf --install-extension MS-CEINTL.vscode-language-pack-ja --force; windsurf --install-extension ms-python.python --force; windsurf --install-extension Codeium.windsurfPyright --force"
--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動すると PATH が自動的に設定される。
【関連する外部ページ】
Windsurf の公式ページ: https://windsurf.com/
- 必要なPythonライブラリのインストール
【関連する外部ページ】
【サイト内の関連ページ】
パワーポイント (pptx) をテキストファイルに変換するプログラム
このプログラムは,GUIを使ってユーザがPowerPoint(.pptx形式)のファイルを選択し,その内容をテキストファイルに変換する.
以下に,このプログラムの主な機能である.
- tkinterのGUIを使ってユーザが.pptx形式のPowerPointファイルを選択できる. ファイルは複数選択可能.選択されたすべてのファイルに対して処理が行われる.
- 選択した各ファイルに対して,pptx_to_text関数が呼び出される.この関数内で,選択したPowerPointのプレゼンテーションが開かれ,各スライドの内容が読み込まれる.各スライドのタイトルとテキストフレーム内の各段落がテキストとして抽出される.
- 日本語の句読点は全角カンマと全角ピリオドに置き換えられる.
- 結果は,同じディレクトリに.txt形式のファイルとして保存される.ファイル名は,元の.pptxファイルと同じ名前が使用される.
- Windows で,コマンドプロンプトを実行
- エディタを起動
cd /d c:%HOMEPATH% notepad pptx2txt.py - エディタで,次のプログラムを保存
import collections import collections.abc from pptx import Presentation import os import tkinter as tk from tkinter import filedialog def pptx_to_text(fpath): try: p = Presentation(fpath) except Exception as e: print(f"Failed to load {fpath}: {str(e)}") return text = "" # 各スライドを処理 for slide in p.slides: title = None # タイトルがある場合は取得 if slide.shapes.title: title = slide.shapes.title.text # タイトルをテキストに追加 if title: text += f"タイトル:{title}\n\n" # 各スライド内の要素を処理 for shape in slide.shapes: if shape.has_text_frame: # 各テキストフレームを処理 for paragraph in shape.text_frame.paragraphs: paragraph_text = ' '.join(run.text for run in paragraph.runs) paragraph_text = paragraph_text.strip().replace("。", ".").replace("、", ",") # 前後の空白を除去.置換 if paragraph_text: # テキストが存在する場合のみ追加 text += paragraph_text + '\n' text += '\n' # スライドの区切りに改行を追加 # テキストファイルを作成・保存 try: # 出力ファイル名を生成 basename = os.path.basename(fpath) filename, _ = os.path.splitext(basename) output_fpath = os.path.join(os.path.dirname(fpath), f"{filename}.txt") with open(output_fpath, "w", encoding="utf-8") as text_file: text_file.write(text) except Exception as e: print(f"Failed to write to {output_fpath}: {str(e)}") root = tk.Tk() root.withdraw() fpaths = filedialog.askopenfilenames(filetypes=[('PowerPoint files', '*.pptx')]) for fpath in root.tk.splitlist(fpaths): full_path = os.path.abspath(fpath) print("Processing file: ", full_path) if not full_path.endswith(".pptx"): print(f"Skipped {full_path} because it's not a .pptx file.") continue try: pptx_to_text(full_path) except Exception as e: print(f"Failed to process {full_path}. Exception: {str(e)}") print("Processing completed.") - Python プログラムの実行
プログラムを pptx2txt.pyのようなファイル名で保存したので, 「python pptx2txt.py」のようなコマンドで行う.
python pptx2txt.py選択画面では,ファイルは複数選択可能である.
結果は,同じディレクトリに.txt形式のファイルとして保存される.ファイル名は,元の.pptxファイルと同じ名前が使用される.