在powerpoint目录中搜索关键字

时间:2018-04-04 02:30:03

标签: python powerpoint

我正在尝试创建一个python程序来搜索关键字的powerpoint幻灯片。这是我到目前为止,但我一直收到一个错误,告诉我它正在寻找一个zip文件“zipfile.BadZipFile:文件不是一个zip文件” 谢谢

from pptx import Presentation
import os

def main():

    while(True):
        search = input("Keyword: ")
        result = []
        for filename in os.listdir():
            f = open(filename)
            pres = Presentation(f)
            for slide in pres.slides:
                for shape in slide.shapes:
                    if not shape.has_text_frame:
                        continue
                    for paragraph in shape.text_frame.paragraphs:
                        for run in paragraph.runs:
                            if search in run.text:
                                result.append(run.text)
                                result.append(" - ")
                                result.append(filename)
                            else:
                                continue
            f.close()
            print(result)
if __name__ == '__main__':
    main()

1 个答案:

答案 0 :(得分:1)

在将文件传递给Presentation()之前,您无需打开该文件。只需传递文件名。

prs = Presentation(filename)

还要确保您使用这种方式的所有文件实际上都是PPTX文件,可能有几行看起来像:

for filename in os.listdir():
    if not filename.endswith('.pptx'):
        continue
    prs = Presentation(filename)

如果由于某种原因确实想要使用打开的文件,则需要以二进制模式打开它们:

f = open(filename, 'rb')