python-pptx“.ppt”处理工作

问题描述:

我目前正试图从.ppt和.pptx文件中提取文本。我成功地使用python-pptx来处理.pptx文件,但是根据its documentation,“PowerPoint 2003及更早版本中的.ppt文件将无法工作。”python-pptx“.ppt”处理工作

使用此行代码创建演示项目当:

`prs = Presentation("Filepath\\presentation.ppt")` 

我收到以下错误:

`Traceback (most recent call last): 
...shortened for brevity.... 
KeyError: "no relationship of type 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument' in collection"` 

我认为,这个错误发生,因为蟒蛇,PPTX无法处理.ppt文件。我试图纠正这种情况有三种方式:

  1. 我想用与Python-PPTX相关的.save()功能,但我会做一个介绍的项目做到这一点。我不能这样做,因为我不得不使用python-pptx,它首先无法处理.ppt文件。
  2. 利用os.rename(src, dst)
    • 这并没有工作。重命名该文件与“另存为”不同,因此会使文件损坏。
  3. 我以前win32com打开PowerPoint应用程序,打开.ppt文件,然后将该文件保存为.PPTX,并同时关闭文件和应用程序。

    • 这种方法的工作,但它真的很笨重。 (请参见下面的代码。)

    Application = win32com.client.Dispatch("PowerPoint.Application") Application.Visible = True Presentation = Application.Presentations.Open("Filepath\\presentation.ppt") Presentation.Saveas("Filepath\\presentation.pptx") Presentation.Close() Application.Quit()

我的问题给社会是否有在解决我的困境更复杂的或优雅的方式。我的困境是,我希望能够解析.ppt文件中的文本,而python-pptx不处理这些文件类型。

您的方法是我会这样做的方式,也许是在开始python-pptx处理之前作为批处理过程。我可能会使用IronPython来访问MS API,但它基本上是相同的方法。

您可以使用Python库来解决LibreOffice或Open Office库(PyOO是一个示例)。这可能具有不需要Windows的优势,但它仍然基本上是“运行”Office应用程序来执行工作;它不是一个直接的库接口。这意味着它可能不适合可靠运行的服务器端,如果这就是你所追求的。