【发布时间】:2013-06-07 15:54:44
【问题描述】:
计算我的所有.docx、.doc、.ppt、.pptx和.pdf文件在某个目录中的总页数;但对如何计算 PowerPoint 幻灯片有点困惑。
这是我尝试过的:
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 演示文稿中获取幻灯片总数?
【问题讨论】:
-
试过
Presentation = Application.Presentations.Open(curr)但这给了我这个错误:File "<COMObject <unknown>>", line 3, in Open pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147024773), None)
标签: ms-office python powerpoint com