首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python ".ppt“处理工作

python ".ppt“处理工作
EN

Stack Overflow用户
提问于 2017-04-12 19:43:35
回答 1查看 1.3K关注 0票数 4

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

使用这一行代码创建演示项目时:

代码语言:javascript
复制
`prs = Presentation("Filepath\\presentation.ppt")`

我收到以下错误:

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

我认为发生此错误是因为python无法处理.ppt文件。我曾尝试以三种方法纠正这种情况:

  1. 我想使用与python相关联的.save()函数,但要做到这一点,我必须做一个演示项目。我不能这样做,因为我必须使用python,它首先不能处理.ppt文件。
  2. 利用os.rename(src, dst)
    • 这是因为没有的作用。重命名文件的工作方式与“保存”不一样,因此使文件损坏。

  1. 我使用win32com打开PowerPoint应用程序,打开.ppt文件,然后将文件保存为.pptx,并关闭文件和应用程序。
代码语言:javascript
复制
- This method worked BUT it is really 'clunky.' (See code below.)

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不处理这些文件类型。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-12 21:36:29

您的方法就是我在开始python-pptx处理之前的方式,可能是作为一个批处理过程。我可能会使用IronPython访问MS,但本质上是相同的方法。

您可以使用一个将LibreOffice或Office库作为替代方案的Python来实现这一点(PyOO就是一个例子)。这可能具有不需要Windows的优点,但实际上它仍然是运行中的Office应用程序的“脚本”;它不是一个直接的库接口。这意味着,如果您想要的是可靠的运行服务器端,那么这可能不太适合。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43378312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档