ms-office - 来自 Python 的 PowerPoint 演示文稿幻灯片计数?

标签 ms-office python powerpoint com

计算我所有的 .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 演示文稿中获取幻灯片总数?

最佳答案

好的,找出答案。

它似乎不喜欢相对路径。

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

from os import getcwd

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

关于ms-office - 来自 Python 的 PowerPoint 演示文稿幻灯片计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17050211/

相关文章:

excel - 您组织的策略阻止我们完成此操作 - Microsoft Office

javascript - 如何在独立脚本中使用 Microsoft Office 2013 javascript API

excel - 如何打开现有 PowerPoint 图表的数据表

c++ - 是否有用于 C++ 的 Open XML 解析器?

python - 更高效的时间增量计算 python 3

PHP - 从不同的文件格式 Word/Excel/Powerpoint/PDF/RTF 中提取文本

c# - 使用 Microsoft.Office.Interop.Word 解析表,只从第一列获取文本?

excel - 基于特定行(人)的列值总和

python - 尝试理解 model.predict 的输出

python - 列表功能有困难