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

kac*_*cey 7 python powerpoint python-2.7

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

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

Gio*_* PY 9

实际工作

如果要提取文本:

  • 从 pptx 导入演示文稿(pip install python-pptx)
  • 对于目录中的每个文件(使用 glob 模块)
  • 查看每张幻灯片和每张幻灯片的每个形状
  • 如果有带有 text 属性的形状,则打印 shape.text

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)
Run Code Online (Sandbox Code Playgroud)


Dhi*_*r M 7

提卡蟒蛇

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

注意:它与pyinstaller一起工作也很迷人

使用 pip 安装:

pip install tika
Run Code Online (Sandbox Code Playgroud)

样本:

#!/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
Run Code Online (Sandbox Code Playgroud)

官方GitHub链接


sca*_*nny 4

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
Run Code Online (Sandbox Code Playgroud)

您需要添加有关在形状文本中搜索关键字符串并将其添加到 CSV 文件或其他文件中的信息,但这种通用方法应该可以正常工作。我将把它留给你来解决更好的问题:)