PowerPoint presentation slide count from Python?
计算我的所有
这是我尝试过的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | from glob import glob from PyPDF2 import PdfFileReader import win32com.client def pdf_page_count(filename): curr = open(filename,"rb") page_count = PdfFileReader(curr).getNumPages() curr.close() return page_count def presentation_slide_count(filename): Application = win32com.client.Dispatch("PowerPoint.Application") Presentation = Application.Presentations.Open(filename) slide_count = len(Presentation.Slides) Presentation.Close() return slide_count if __name__=='__main__': powerpoints = glob('*/*/*.pptx') + glob('*/*/*.ppt') documents = glob('*/*/*.docx') + glob('*/*/*.doc') pdf = glob('*/*/*.pdf') total_pdf_pages = sum([pdf_page_count(pdf) for pdf in pdf]) total_docx_pages = 0 total_powerpoint_slides = sum([presentation_slide_count(presentation) for presentation in powerpoints]) print total_pdf_pages print total_powerpoint_slides |
此外,我尝试过使用 python-pptx,但是我收到了 lxml 错误(因此尝试构建我自己的 lxml;在 iconv 依赖问题上出错了)。另外,由于它只支持 pptx,我需要为 ppt 找到另一种方法。 PowerPoint 2013 x64 已安装,我正在使用 Python 2.7.4 x64。
如何使用 Python 从 PowerPoint 演示文稿中获取总幻灯片数?
好的,找到答案了。
它似乎不喜欢相对路径。
将这一行添加到该函数可以解决问题:
1 2 3 | from os import getcwd filename = getcwd() + '//' + filename |
我认为最简单的方法是这个。
通过这种方式,我可以获得总幻灯片数。
1 2 3 | from pptx import Presentation prs = Presentation("path/example.pptx") print(len(prs.slides)) |