使用Python快速提取PPT中的文本内容

news/2024/6/29 17:17:43 标签: python, powerpoint, 开发语言

直接提取PPT中的文本内容可以方便我们进行进一步处理或分析,也可以直接用于其他文档的编撰。通过使用Python程序,我们可以快速批量提取PPT中的文本内容,从而实现高效的信息收集或对其中的数据进行分析。本文将介绍如何使用Python程序提取PowerPoint演示文稿中的文本内容,包括幻灯片中的主体文本、幻灯片备注文本以及幻灯片。

文章目录

    • 用Python提取PPT幻灯片文本
    • 用Python提取PPT备注文本
    • 用Python提取PPT批注文本
      • 总结

本文所使用的方法需要用到Spire.Presentation for Python,可从官网下载或通过PyPI安装:pip install Spire.Presentation

申请免费License

用Python提取PPT幻灯片文本

在PPT幻灯片中,文本内容放置在各种形状中,如文本框、图形。我们可以先获取幻灯片中的形状,再提取其中的文本,从而实现对幻灯片文本内容的提取。以下是操作步骤:

  1. 创建 Presentation 对象并使用 Presentation.LoadFromFile() 方法载入PPT。
  2. 遍历PPT中的幻灯片,然后遍历幻灯片中的形状。
  3. 判断形状是否为 IAutoShape 实例。如果是,则通过 IAutoShape.TextFrame.Paragraphs 获取其中的段落,再通过 Paragraph.Text 属性获取段落中的文本。
  4. 将文本写入到文本文件。

代码示例:

Python

python">从 spire.presentation 导入 *
从 spire.presentation.common 导入 *

# 创建 Presentation 类的对象
pres = Presentation()

# 加载 PowerPoint 演示文稿
pres.LoadFromFile("示例.pptx")

text = []
# 循环遍历每个幻灯片
对于 slide 在 pres.Slides 中:
    # 循环遍历每个形状
    对于 shape 在 slide.Shapes 中:
        # 检查形状是否为 IAutoShape 实例
        如果 isinstance(shape, IAutoShape):
            # 从形状中提取文本
            对于 paragraph 在 shape.TextFrame.Paragraphs 中:
                text.append(paragraph.Text)

# 将文本写入文本文件
f = open("output/幻灯片文本.txt", "w", encoding='utf-8')
对于 s 在 text 中:
    f.write(s + "\n")
f.close()
pres.Dispose()

提取结果:

Python提取PPT幻灯片文本

用Python提取PPT备注文本

备注是基于幻灯片添加的额外信息,可以对演讲者进行引导或提示,且不会展示给观众。幻灯片的备注储存在 NotesSlide 对象中,可以通过 ISlide.NotesSlide 属性获取。再获取到改对象之后,就可以使用 NotesSlide.NotesTextFrame.Text 属性提取其中的文本了。以下是操作步骤:

  1. 创建 Presentation 对象并使用 Presentation.LoadFromFile() 方法载入PPT。
  2. 遍历PPT中的幻灯片,通过 ISlide.NotesSlide 属性获取 NotesSlide 对象,再通过 NotesSlide.NotesTextFrame.Text 属性提取备注文本。
  3. 将文本写入文本文件。

代码示例:

Python

python">从 spire.presentation 导入 *
从 spire.presentation.common 导入 *

# 创建 Presentation 类的对象
pres = Presentation()

# 加载 PowerPoint 演示文稿
pres.LoadFromFile("示例.pptx")

notes_list = []
# 循环遍历每个幻灯片
对于 slide 在 pres.Slides 中:
    # 获取备注幻灯片
    notes_slide = slide.NotesSlide
    # 获取备注内容
    notes = notes_slide.NotesTextFrame.Text
    notes_list.append(notes)

# 将备注写入文本文件
f = open("output/备注文本.txt", "w", encoding="utf-8")
对于 note 在 notes_list 中:
    f.write(note)
    f.write("\n")
f.close()
pres.Dispose()

提取结果:

Python提取PPT备注文本

用Python提取PPT批注文本

我们还可以通过 ISlide.Comments 属性获取PPT幻灯片中的批注,并通过 Comment.Text 属性获取批注中的文本。以下是操作步骤:

  1. 创建 Presentation 对象并使用 Presentation.LoadFromFile() 方法载入PPT。
  2. 遍历幻灯片,通过 ISlide.Comments 属性获取每张幻灯片中的批注的集合。
  3. 遍历批注,通过 Comment.Text 属性提取批注中的文本。
  4. 将文本写入到文本文件。

代码示例:

Python

python">from spire.presentation import *
from spire.presentation.common import *

# 创建 Presentation 类的对象
pres = Presentation()

# 加载一个 PowerPoint 演示文稿
pres.LoadFromFile("示例.pptx")

comments_list = []
# 遍历所有幻灯片
for slide in pres.Slides:
    # 获取幻灯片中的所有评论
    comments = slide.Comments
    # 遍历评论
    for comment in comments:
        # 获取评论文本
        comment_text = comment.Text
        comments_list.append(comment_text)

# 将评论写入文本文件
f = open("output/批注文本.txt", "w", encoding="utf-8")
for comment in comments_list:
    f.write(comment + "\n")
f.close()
pres.Dispose()

提取结果:

Python提取PPT批注文本

总结

本文介绍了如何使用Python提取幻灯片中的文本内容,包括提取幻灯片文本、备注文本以及批注文本。
文中使用的API还支持其他的很多PPT处理操作,请前往Spire.Presentation for Python教程了解更多PPT操作。


http://www.niftyadmin.cn/n/5417843.html

相关文章

人工智能|机器学习——K-means系列聚类算法k-means/ k-modes/ k-prototypes/ ......(划分聚类)

1.k-means聚类 1.1.算法简介 K-Means算法又称K均值算法,属于聚类(clustering)算法的一种,是应用最广泛的聚类算法之一。所谓聚类,即根据相似性原则,将具有较高相似度的数据对象划分至同一类簇,…

基于MapReduce的汽车数据清洗与统计案例

数据简介 ecar168.csv(汽车销售数据表): 字段数据类型字段说明rankingString排名manufacturerString厂商vehicle_typeString车型monthly_sales_volumeString月销量accumulated_this_yearString本年累计last_monthString上月chain_ratioStri…

代码随想录训练营Day17:● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和

110.平衡二叉树 题目链接 https://leetcode.cn/problems/balanced-binary-tree/description/ 题目描述 思路 使用后序遍历,即左右中顺序 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode …

基于pytorch的视觉变换器-Vision Transformer(ViT)的介绍与应用

近年来,计算机视觉领域因变换器模型的出现而发生了革命性变化。最初为自然语言处理任务设计的变换器,在捕捉视觉数据的空间依赖性方面也显示出了惊人的能力。视觉变换器(Vision Transformer,简称ViT)就是这种变革的一个…

gin golang Invalid validation tag on field ‘AId‘

结构体如下type CreateParams struct {AId uint json:"a_id" binding:"required,"BId uint json:"b_id" binding:"required,"} 运行时报错:Invalid validation tag on field AId 原因:在binding中&#…

【重新定义matlab强大系列十七】Matlab深入浅出长短期记忆神经网络LSTM

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好🤗&#x1f91…

【C++】STL容器List的使用vector和list的对比

STL容器List使用介绍&vector和list的对比 一,list的使用1. 构造&拷贝构造2. 迭代器3. 容量相关4. 增删查改 二,list对比vector1. 结构2. 访问方式3. 插入删除4. 空间利用率5. 迭代器6. 迭代器失效问题7. 使用场景 一,list的使用 我们…

Joe主题网站

一款博客网站源码 发现源码为大家内置了主题 清爽又强大真正的永久可用的一条源码,该版本为整合版本,内置了Joe主题,搭建后直接启用即可~ 安装环境要求: PHP 7.2 以上 MySQL, PostgreSQL, SQLite 任意一种数据库支持,…