3

特定のディレクトリ内のすべての my .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 プレゼンテーションから合計スライド数を取得するにはどうすればよいですか?

4

2 に答える 2

2

わかりました、答えを見つけました。

相対パスが好きではないようです。

この行をその関数に追加すると、問題が解決します。

from os import getcwd

filename = getcwd() + '//' + filename
于 2013-06-11T15:11:38.310 に答える