pythonptx“.ppt”处理周围工作

2024-04-26 21:38:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从.ppt和.pptx文件中提取文本。为了处理.pptx文件,我成功地使用了python pptx,但是根据its documentation,“.ppt文件来自powerpoint2003和更早版本将不能工作。”

使用以下代码行创建演示项目时:

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

我收到以下错误:

^{pr2}$

我认为发生这个错误是因为PythonPPTX无法处理.ppt文件。我尝试了三种方法来补救这种情况:

  1. 我想使用与pythonpptx相关联的.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无法处理这些文件类型。在


Tags: 文件方法代码文本应用程序application错误方式
1条回答
网友
1楼 · 发布于 2024-04-26 21:38:59

您的方法与我的方法相同,可能是在启动python-pptx处理之前作为批处理过程。我可能会使用IronPython来访问msapi,但本质上是相同的方法。在

您可以使用一个Python库来处理LibreOffice或openoffice库作为替代(PyOO就是一个例子)。这可能有一个优点,即不需要Windows,但它本质上仍然是“编写”一个正在运行的Office应用程序来完成这项工作;它不是一个直接的库接口。这意味着它可能不太适合可靠运行的服务器端,如果这是您想要的。在

相关问题 更多 >