カレントディレクトリ以下にある任意のPowerPointプレゼンテーションで,全スライドからテキストを抽出するPythonスクリプトです.

目次

  1. スクリプト
  2. 備考

スクリプト

import os
import collections.abc
import pptx

def text_extract(filename):
prs = pptx.Presentation(filename)
with open(filename + '.txt', mode='w') as f:
for i, sld in enumerate(prs.slides, start=1):
f.write(f'## スライド{i}\n')
for shp in sld.shapes:
if shp.has_text_frame:
f.write(shp.text + '\n')

if __name__ == '__main__':
top_dir_path = '.'
for pathname, dirnames, filenames in os.walk(top_dir_path):
for filename in filenames:
if filename.endswith('.pptx') or filename.endswith('.ppt'):
text_extract(os.path.join(pathname,filename))

備考

  • import collections.abcが入っていないとエラーが出ます.
  • 再帰的に処理します.
  • 抽出されたテキストファイルはプレゼンテーションと同じ階層に同一ファイル名.txtの形で作られます.