资讯专栏INFORMATION COLUMN

Python提取PPT中的图片

TIGERB / 505人阅读

摘要:一前言今天要带大家实现的是图片的提取。三提取中的图片打开压缩包在中提供了一个模块用于处理压缩包文件。另外,其实我们手动解压然后提取中的图片也是很方便的,也并不会比程序慢。

一、前言

今天要带大家实现的是PPT图片的提取。在我们学习工作中,PPT的使用还是非常频繁的,但是自己做PPT是很麻烦的,所以就需要用到别人的模板或者素材,这个时候提取PPT图片就可以减少我们很多工作。

二、实现原理

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

这是解压后的文件。我们可以在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/.relsppt/presentation.xmlppt/slides/_rels/slide2.xml.relsppt/slides/slide1.xmlppt/slides/slide2.xmlppt/slides/slide3.xml

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

2、解压文件

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

from zipfile import ZipFilewith ZipFile("test.pptx") as f:    for file in f.namelist():        print(file)

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

from zipfile import ZipFilewith ZipFile("test.pptx") as f:    for file in f.namelist():        # 解压文件        f.extract(file, path="unzip")

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

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

from zipfile import ZipFilewith ZipFile("test.pptx") as f:    for file in f.namelist():        # 如果是media目录下的文件就解压        if file.startswith("ppt/media/"):            f.extract(file, path="unzip")

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

四、提取PPT中的图片

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

import osfrom 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)

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

另外,其实我们手动解压然后提取PPT中的图片也是很方便的,也并不会比程序慢。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/121657.html

相关文章

  • 我用Python爬取了五千张美女图壁纸,每天一张忘记初恋!

    摘要:爱美之心人皆有之,正所谓窈窕淑女君子好逑,美好敲代码的一天从好看的桌面壁纸开始,好看的桌面壁纸从美女壁纸开始。 大家好,我是辣条,这是我爬虫系列的第26篇。 爱美之心人皆有之,正所谓窈窕淑女君子好逑,美好敲代码的一天从好看的桌面壁纸开始,好看的桌面壁纸从美女壁纸开始。今天给大家带来福利啦,爬...

    huaixiaoz 评论0 收藏0
  • Python爬虫笔记1-爬虫背景了解

    摘要:学习爬虫的背景了解。但是搜索引擎蜘蛛的爬行是被输入了一定的规则的,它需要遵从一些命令或文件的内容,如标注为的链接,或者是协议。不同领域不同背景的用户往往具有不同的检索目的和需求,搜索引擎无法提供针对具体某个用户的搜索结果。 学习python爬虫的背景了解。 大数据时代数据获取方式 如今,人类社会已经进入了大数据时代,数据已经成为必不可少的部分,可见数据的获取非常重要,而数据的获取的方式...

    oujie 评论0 收藏0
  • 一步步爬取Coursera课程资源

    摘要:至此登录功能初步实现。为了方便我们快速定位到每节课的所有资源,可以把一节课的所有资源文件均命名为课名文件类型。可以看一下一个测试例子中的文件,部分内容如下到这里为止,我们已经成功完成爬取课程资源的目标,具体的代码放在上。 原文地址 有时候我们需要把一些经典的东西收藏起来,时时回味,而Coursera上的一些课程无疑就是经典之作。Coursera中的大部分完结课程都提供了完整的配套教学资...

    Simon_Zhou 评论0 收藏0
  • 怎么用Python实现自动生成ppt?下文给你答案

      在日常向领导汇报工作的时候,PPT使用次数是比较多的,那么,怎么才能提高工作效率,更快的去完成PPT呢?下面,小编就给大家总结了一些代码实例,希望大家以后在工作中能够遇到。  在日常工作中,PPT制作是常见的工作,那么慢,怎么快速的进行制作,确是十分考验人的能力的。  如果我们想要把PPT做的更好看一些,比如去制作创意类PPT,则无法通过自动化的形式生成,因为创意本身具有随机性,而自动化解决的...

    89542767 评论0 收藏0
  • 关于程序员写好 ppt 的几点总结 - 前端张大胖

    摘要:背景程序员日常工作中最多的应该是接收需求编码实现需求。内容决定形式,形式依赖于内容,并随内容的发展而发展。我也只做到了图形搭配阶段,配图就比较麻烦,如果要是能确定关键词也可以,百度搜索即可。具体的网站百度找下就可以了,就不发地址了。 背景 程序员日常工作中最多的应该是接收需求、编码实现需求。但也有些时候需要做一些非代码的文字工作。 比如做述职报告、工作总结等,这些一般的都是通过 ppt...

    Cobub 评论0 收藏0

发表评论

0条评论

TIGERB

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<