【问题标题】:PowerPoint presentation slide count from Python?来自 Python 的 PowerPoint 演示文稿幻灯片计数?
【发布时间】: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


【解决方案1】:

好的,找到答案了。

它似乎不喜欢相对路径。

将这一行添加到该函数可以解决问题:

from os import getcwd

filename = getcwd() + '//' + filename

【讨论】:

    【解决方案2】:

    我认为最简单的方法是这个。 这样我就可以得到总幻灯片数。

    from pptx import Presentation
    prs = Presentation("path/example.pptx")
    print(len(prs.slides))
    

    【讨论】:

    • 当我 7 年前尝试这个时,我无法安装 python-pptx,如引用的那样。
    猜你喜欢
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 2023-03-29
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多