Python pptx 读取ppt

引言

Microsoft PowerPoint 是一款广泛使用的演示文稿软件。在很多情况下,我们可能需要使用 Python 读取并处理 PowerPoint 文件。Python 提供了多个库来处理 PowerPoint 文件,其中之一就是 python-pptx。本文将介绍如何使用 python-pptx 这个库来读取和处理 PowerPoint 文件,并提供相应的代码示例。

什么是 python-pptx

python-pptx 是 Python 中用于创建和更新 PowerPoint (*.pptx) 文件的第三方库。它可以用于读取、创建、修改和保存 PowerPoint 文件。python-pptx 提供了一组简单易用的 API,使得我们可以通过 Python 代码来处理 PowerPoint 文件,例如读取幻灯片的内容、添加和编辑幻灯片、插入图片和表格等。

安装 python-pptx

在开始之前,我们需要先安装 python-pptx 库。可以通过 pip 来进行安装:

pip install python-pptx

使用 python-pptx 读取 PowerPoint 文件

首先,我们需要导入 python-pptx 库:

from pptx import Presentation

接下来,我们可以使用 Presentation 类来打开并读取 PowerPoint 文件。以下是读取 PowerPoint 文件的代码示例:

# 打开 PowerPoint 文件
ppt = Presentation('example.pptx')

# 遍历每一页幻灯片
for slide in ppt.slides:
    # 遍历每个形状(文本框、图片等)
    for shape in slide.shapes:
        # 如果形状是文本框
        if shape.has_text_frame:
            # 输出文本框的内容
            print(shape.text_frame.text)
        # 如果形状是图片
        elif shape.has_picture_frame:
            # 输出图片的文件名
            print(shape.picture_frame.file.name)

在上面的示例中,我们使用 Presentation 类打开一个名为 example.pptx 的 PowerPoint 文件,并遍历每一页幻灯片。对于每一个幻灯片,我们再遍历每个形状,并输出文本框的内容或者图片的文件名。

编辑 PowerPoint 文件

除了读取 PowerPoint 文件之外,python-pptx 还提供了一系列的 API 来编辑和创建新的 PowerPoint 文件。以下是一些常用的编辑操作示例:

添加新的幻灯片

我们可以使用 ppt.slides.add_slide() 方法来添加新的幻灯片。以下是添加新幻灯片的代码示例:

# 添加新的幻灯片
slide = ppt.slides.add_slide(ppt.slide_layouts[1])

在上面的示例中,我们使用 add_slide() 方法来添加新的幻灯片,并指定幻灯片的布局为 ppt.slide_layouts[1],这代表第二种布局。

添加文本框

要在幻灯片上添加文本框,我们可以使用 slide.shapes.add_textbox() 方法。以下是添加文本框的代码示例:

# 添加文本框
textbox = slide.shapes.add_textbox(left=100, top=100, width=200, height=100)
textbox.text_frame.text = "Hello, world!"

在上面的示例中,我们首先使用 add_textbox() 方法在幻灯片上创建一个文本框,并指定其位置和大小。然后,我们使用 text_frame.text 属性来设置文本框的内容。

添加图片

要在幻灯片上添加图片,我们可以使用 slide.shapes.add_picture() 方法。以下是添加图片的代码示例:

# 添加图片
slide.shapes.add_picture('image.jpg', left=100, top=100, width=200, height=100)

在上面的示例中,我们使用 add_picture() 方法在幻灯片上添加一张名为 image.jpg 的图片,并指定其位置和大小。

保存 PowerPoint 文件

在完成对 PowerPoint 文件的编辑之后,我们可以使用 ppt.save() 方法将修改后的文件保存到新的位置。以下是保存 PowerPoint 文件的代码示例:

# 保存 PowerPoint 文件
ppt.save('output.pptx')

在上面的示例中,我们使用 save() 方法将修改后的 PowerPoint 文件保存到名为 output.pptx 的位置。