使用Python将ppt文件转换为pptx

8

有没有办法将.ppt文件转换为.pptx文件?

目标:我需要从.ppt文件中提取表格中的文本(包括列名如姓名、地址、联系电话、电子邮件等)。为此,我采用了以下方法:

我将.ppt文件转换为pdf文件,然后使用PDFminer从pdf文件中提取数据。从pdf中提取的文本没有使用任何分隔符进行分割,因此很难区分表格中的名称和其他字段。

我正在尝试的解决方案:

  1. 将.ppt文件转换为.pptx文件
  2. 解析.pptx文件的xml以获取格式化的文本

我卡在了将文件格式从.ppt转换为.pptx的第一步上。我无法找到在Python中将.ppt文件格式转换为.pptx格式的解决方案。


1
你为什么想要使用Python将ppt转换为pptx?据我所知,你可以轻松地在Powerpoint 2010中完成这个任务。 - ABcDexter
1
我需要从ppt文件中提取文本。而且我有成千上万个ppt文件。Powerpoint 2010允许批量文件转换吗? - mayautobot
好的,你的观点是正确的(你可以在问题描述中添加这一点)。让我试试这段代码。 - ABcDexter
请发布完整的跟踪信息,看起来您缺少一个包,无论文件类型如何都可以修复。 - kabanus
你正在运行哪个操作系统?Windows 中有一些在其他操作系统中不可用的选项。 - scanny
我正在使用Windows 7操作系统。如果在Linux或Mac上有任何解决方案,请建议,我会尝试一下。谢谢。 - mayautobot
4个回答

3
我已经创建了这段代码,希望它能为您工作:
    import win32com.client
    PptApp = win32com.client.Dispatch("Powerpoint.Application")
    PptApp.Visible = True
    PPtPresentation = PptApp.Presentations.Open(r'D:\ppt\sample.ppt')
    PPtPresentation.SaveAs(r'D:\ppt\final.pptx', 24)
    PPtPresentation.close()
    PptApp.Quit()

1
虽然很有用,但这在Python 3中不起作用。 - Super BUFF Meatballs
Python3 有没有新的方式? - Basel Akasha
pptx -> 24。分享PowerPoint扩展代码文档列表。 - THAVASI.T

1
对于MacOS Homebrew用户:安装Apache Tika (brew install tika)
命令行界面的使用方法如下:
tika --text something.ppt > something.txt

并且在Python脚本中使用它:

import os
os.system("tika --text temp.ppt > temp.txt")

你将能够做到这一点,这是我目前唯一的解决方案。


0
import os
os.system("libreoffice --headless --invisible --convert-to pptx *.ppt")

0
完美地在Anaconda 3和Jupyter Notebook上工作。
from glob import glob
import re
import os
import win32com.client

paths = glob('C:\\yourfilePath\\*.ppt', recursive=True)

def save_as_pptx(path):
    PptApp = win32com.client.Dispatch("Powerpoint.Application")
    PptApp.Visible = True
    PPtPresentation = PptApp.Presentations.Open(path)
    PPtPresentation.SaveAs(path+'x', 24)
    PPtPresentation.close()
    PptApp.Quit()
    
for path in paths:
    print(path.replace("\\yourfile\\", "\\yourfile_pptx\\"))
    save_as_pptx(path)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接