python操作ppt,如何判断幻灯片中有图片

Python011

python操作ppt,如何判断幻灯片中有图片,第1张

一、实现原理

其实实现原理很简单,我们的pptx文件其实是一个压缩包。我们可以直接修改pptx文件的后缀,改成zip然后解压,比如下面这个:

BTH0Q0$4CJH0}2VQP~06KH1.png

这是解压后的文件。我们可以在ppt目录下找到一个media目录,这个目录下就是我们要的图片的。这个目录包含了PPT的所有多媒体文件。

知道这点后,我们就可以选择用python来解压出PPT中的media目录就可以提取出所有图片了。

二、提取PPT中的图片

1、打开压缩包

在Python中提供了一个zipfile模块用于处理压缩包文件。我们来看看它的简单操作:

from zipfile import ZipFile

# 打开压缩文件

f = ZipFile("test.pptx")

# 查看压缩包所有文件

for file in f.namelist():

print(file)

# 关闭压缩包文件

f.close()

输出的部分结果如下:

[Content_Types].xml

_rels/.rels

ppt/presentation.xml

ppt/slides/_rels/slide2.xml.rels

ppt/slides/slide1.xml

ppt/slides/slide2.xml

ppt/slides/slide3.xml

可以看到我们打印出了压缩包的文件。

2、解压文件

我们还可以通过下面的方式打开压缩包:

from zipfile import ZipFile

with ZipFile("test.pptx") as f:

for file in f.namelist():

print(file)

通过with语句,就可以不显示地调用close方法。下面我们看看解压操作:

from zipfile import ZipFile

with ZipFile("test.pptx") as f:

for file in f.namelist():

# 解压文件

f.extract(file, path="unzip")

解压文件的操作通过f.extract来实现,这里传入了两个参数,分别是压缩包文件,和解压路径,如果压缩包有密码还需要传入解压密码。

然后我们还需要判断一下,如果是媒体目录我们才解压。我们添加一点代码:

from zipfile import ZipFile

with ZipFile("test.pptx") as f:

for file in f.namelist():

# 如果是media目录下的文件就解压

if file.startswith("ppt/media/"):

f.extract(file, path="unzip")

这样我们就实现了PPT图片的提取。

三、提取PPT中的图片

我们把上面代码再完善一下:

import os

from zipfile import ZipFile

# 解压目录

unzip_path = "unzip"

# 如果解压目录不存在则创建

if not os.path.exists(unzip_path):

os.mkdir(unzip_path)

with ZipFile("test1/test.pptx") as f:

for file in f.namelist():

if file.startswith("ppt/media/"):

f.extract(file, path=unzip_path)

这里我们就是添加了一个解压目录的创建,这样我们执行的时候就不会因为目录不存在而报错了。

如何用Python给PPT加图片

如何用Python给PPT加音频

如何把PPT存为视频

源代码:

from pptx import Presentation

import win32com.client

import win32com

import os

powerpoint = win32com.client.Dispatch('PowerPoint.Application')

#是否后台运行

powerpoint.Visible = True

ppt = powerpoint.Presentations.Open("e:ccc.pptx")

#ppt.slides[1].shapes.AddPicture("e:willy9.jpg",1,1,1,1) #添加图片

ppt.slides[1].shapes.AddMediaObject2("e:222.mp3") #添加音频

ppt.SaveAs("e:ccc1.pptx",39) #存为视频

注意:

一定要注意去查MS 的官方文档

https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.shapes.addmediaobject2

结论:

不得不佩服python和微软的强大

python编程、PPT制作等。

1、python编程:简单想要入门,可以看一下这哈佛大学CS50,这门课程应该是国外参与人数最多,而且好评最多的编程入门课程,课程会涉及到C,Python,SQL,andJavaScript多门编程语言,还有前端的CSSandHTML,反正入门想了解编程,参与这个肯定不会有错。

2、PPT制作:如果你是大学生学会了就可以用它兼职赚钱,如果你是职场白领,说不定就是你以后升职加薪的利器。而且,只要你有一部电脑,一双手,就够了。