分步骤教你用python一步步提取PPT中的图片
目录
- 一、实现原理
- 二、提取PPT中的图片
- 1、打开压缩包
- 2、解压文件
- 三、提取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中的图片也是很方便的,也并不会比程序慢。
【分步骤教你用python一步步提取PPT中的图片】到此这篇关于分步骤教你用python一步步提取PPT中的图片的文章就介绍到这了,更多相关python 提取 PPT 图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 教你使用zabbix|教你使用zabbix api批量添加数百台监控主机的方法
- CitrusEngine系列教程二(结合starling和Box2D开发游戏)
- 每日刷题———蓝桥杯真题|蓝桥杯2020第十一届C语言B组省赛习题题解——习题B.既约分数
- C语言探索之旅|【C语言探索之旅】 第三部分第一课(SDL开发游戏之安装SDL)
- js基础知识小结
- 护网|流量分析 (护网面试题)
- 操作系统|【王道操作系统】第一章 操作系统概述(下)——操作系统的发展、分类、运行机制、体系结构
- 论文分享|《新程序员003》正式上市,华为、阿里等 30+ 公司的云原生及数字化实战经验
- 论文分享|【经验分享】分享 MangoPapa 的论文学习经验
- python|python转C