使用python从多个powerpoint文件中提取文本

2024-04-25 23:48:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到一种方法来查找文件夹,并搜索该文件夹中所有powerpoint文档的内容以查找特定字符串,最好使用Python。当找到这些字符串时,我想报告该字符串之后的文本以及在哪个文档中找到的文本。我想编译这些信息并将其报告到CSV文件中。

到目前为止,我只见过olefil包,https://bitbucket.org/decalage/olefileio_pl/wiki/Home。这提供了包含在特定文档中的所有文本,这不是我希望做的。请帮忙。


Tags: 文件csv方法字符串文档httpsorg文本
3条回答

python-pptx可用于执行您的建议。在较高的层次上,您可以这样做(不工作的代码,只是总体方法的想法):

from pptx import Presentation

for pptx_filename in directory:
    prs = Presentation(pptx_filename)
    for slide in prs.slides:
        for shape in slide.shapes:
            print shape.text

您需要添加一些关于搜索形状文本中的关键字符串并将它们添加到CSV文件或其他内容的信息,但是这种通用方法应该可以很好地工作。我把它留给你去解决更好的问题:)

实际工作

如果要提取文本:

  • 从pptx导入演示文稿(pip install python pptx)
  • 对于目录中的每个文件(使用glob模块)
  • 看每一张幻灯片,看每一张幻灯片的每一个形状
  • 如果存在具有文本属性的形状,请打印该形状。文本

from pptx import Presentation
import glob

for eachfile in glob.glob("*.pptx"):
    prs = Presentation(eachfile)
    print(eachfile)
    print("----------------------")
    for slide in prs.slides:
        for shape in slide.shapes:
            if hasattr(shape, "text"):
                print(shape.text)

提卡Python

Apache Tika库的Python端口,根据文档Apache Tika支持从1500多种文件格式中提取文本。

注意:它还可以与pyinstaller一起工作

使用pip安装:

pip install tika

示例:

#!/usr/bin/env python
from tika import parser
parsed = parser.from_file('/path/to/file')
print(parsed["metadata"]) #To get the meta data of the file
print(parsed["content"]) # To get the content of the file

链接到官方GitHub

相关问题 更多 >