我正在尝试创建一个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()
答案 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')