python-pptx从幻灯片标题中提取文本

摘要: 我正在用python构建一个文档检索引擎,该引擎返回按与用户提交的查询相关性排序的文档。我收集了一些文档,其中也包括PowerPoint文件。对于PPT

我正在用python构建一个文档检索引擎,该引擎返回按与用户提交的查询相关性排序的文档。我收集了一些文档,其中也包括PowerPoint文件。对于PPT,我想在结果页面上向用户显示前几张幻灯片标题,以便为他/她提供更清晰的图片(有点像我们在Google搜索中看到的那样)。

因此,基本上,我想使用python从PPT文件中的幻灯片标题中提取文本。我正在使用python-pptx包。目前,我的实现看起来像这样

from pptx import Presentationprs = Presentation(filepath) # load the pptslide_titles = [] # container foe slide titlesfor slide in prs.slides: # iterate over each slide
           title_shape =  slide.shapes[0] # consider the zeroth indexed shape as the title
           if title_shape.has_text_frame: # is this shape has textframe attribute true then
               # check if the slide title already exists in the slide_title container
               if title_shape.text.strip(""" !@#$%^&*)(_-+=}{][:;<,>.?"'/<,""")+ '. ' not in slide_titles: 
                   slide_titles.append(title_shape.text.strip(""" !@#$%^&*)(_-+=}{][:;<,>.?"'/<,""")+ '. ')

但是,正如您所看到的,我假设每张幻灯片上的零索引形状都是幻灯片标题,显然并非每次都这样。关于如何实现此目标的任何想法?

Slide.shapesSlideShapes对象)具有以下属性:当存在一个(通常为)时,该属性返回标题形状;如果不存在标题,则返回None。http://python-pptx.readthedocs.io/zh-CN/latest/api/shapes.html#slideshapes-objects.title

这是访问标题形状的首选方法。

请注意,并非所有幻灯片都具有标题形状,因此您必须测试None结果以避免这种情况下的错误。

还要注意,用户有时会使用不同的标题形状,例如他们添加的单独的新文本框。因此,您不能保证将“出现”的文本作为幻灯片中的标题。但是,您将获得与PowerPoint认为的标题相匹配的文本,例如,它在“大纲”视图中显示为该幻灯片的标题的文本。


本文由 帝一博客 原创发布。用户在本站发布的原创内容(包括但不仅限于回答、文章和评论),著作权均归用户本人所有。独家文章转载,请联系邮箱:17762131@qq.com。获得授权后,须注明本文地址: https://bubukou.com/pythonpachong/1775.html

网友留言评论

0条评论