Python工具源码,Python批量提取PPT文件中的图片 |
您所在的位置:网站首页 › 如何提取PPT中的图片 › Python工具源码,Python批量提取PPT文件中的图片 |
在办公场景当中,同样也有这样一个需求,那就是快速批量把PPT文件中的图片提取出来,毕竟一个个点击另存为太过于繁琐,以及耗费时间,前面本渣渣分享过如何应用Python批量提取PDF文件中的图片,而这一篇本渣渣就为大家分享如何应用Python批量提取PPT文件中的图片。 其实不通过代码脚本的形式也可以快速方便的提取PPT中的图片文件,这里分享一个简单方法,那就是将PPT文件后缀更改为rar压缩文件的格式,通过解压的方式来获取所有的图片文件,感兴趣的话不妨尝试一番! 言归正传,应用Python批量提取PPT文件中的图片有两种方式,一种是单纯的提取PPT文件中的图片,这种方法可能会存在图片文件缺失的情况,而第二种方法是直接将每一页PPT转换成图片。 方法一:应用Python-pptx库1.安装方法: pip install python-pptx2.提取图片使用方法: # -*- coding: utf-8 from pptx import Presentation import os import sys ''' 功能: 将pptx中出现的图片素材全部导出 ''' ppt_root = jpg_root = sys.path[0] print(ppt_root) i = 0 def ppt2png(pptFileName): # 实例化ppt对象 prs = Presentation(pptFileName) # PPT文件路径 # 遍历 for slide in prs.slides: for obj in slide.shapes: # try/except 因为非图片元素没有Image方法会弹出异常. try: global i # 获取二进制字符流 imdata = obj.image.blob # 判断文件后缀类型 imagetype = obj.image.content_type typekey = imagetype.find('/') + 1 i += 1 imtype = imagetype[typekey:] # 创建image文件夹保存抽出图片 path = jpg_root + "/image/" if not os.path.exists(path): os.makedirs(path) # 图片生成 obj.name = "Picture" + str(i) image_file = path + obj.name + "." + imtype file_str = open(image_file, 'wb') file_str.write(imdata) file_str.close() except: pass for fn in (fns for fns in os.listdir(ppt_root) if fns.endswith(('.ppt', 'pptx'))): ppt2png(fn) 方法二:使用win32com导出图片使用方法: #将ppt每页转化为图片 # -*- coding: utf-8 -*- import os import win32com import win32com.client # 存储PPT为JPG格式的类型,所对应的数值 ppSaveAsJPG = 17 def ppt_to_jpg(ppt_file_name,output_dir_name): '''将PPT另存为JPG格式 arguments: ppt_file_name: 要转换的ppt文件的完整路径文件名,eg:F:\\test\\ppt_name.ppt output_dir_name:转换后的存放JPG文件的目录,以PPT的名字新建的目录,eg:F:\\test\\ppt_name ''' # 启动PPT ppt_app = win32com.client.Dispatch('PowerPoint.Application') # 设置为0表示后台运行,不显示,1则显示 ppt_app.Visible = 1 # 打开PPT文件 ppt = ppt_app.Presentations.Open(ppt_file_name) # 另存为,第一个参数为报存图片的目录,第二个是报存的格式。 ppt.SaveAs(output_dir_name, ppSaveAsJPG) # 退出PPT ppt_app.Quit() if __name__ == '__main__': # 当前文件所在目录,eg: F:\\test,如果你要指定某个目录,则手动指定current_dir 即可 current_dir=r'E:\Python\pdfjpg\1' #current_dir = os.sys.path[0] # 当前目录下所有文件,遍历的结果是文件名。 dir_list = os.listdir(current_dir) # 当前目录下所有的PPT文件,eg: ppt_name.ppt ppt_file_names = (fns for fns in dir_list if fns.endswith(('.ppt','.pptx'))) # 当前目录下所有的PPT文件名,这两者的区别在于有无后缀名,eg: ppt_name # splitext的作用是,'xx.jpg',会分成'xx'和'.jpg' ppt_names = (os.path.splitext(fns)[0] for fns in dir_list if fns.endswith(('.ppt','.pptx'))) # 因为只需要文件名,这样也行 # ppt_names = (fns.split('.')[0] for fns in ppt_file_names) for ppt_file_name,ppt_name in zip(ppt_file_names,ppt_names): # 该PPT的完整路径文件名,eg: F:\\test\\ppt_name.ppt ppt_file_name = os.path.join(current_dir,ppt_file_name) # 需要新建一个与PPT同名的文件,获取完整路径,eg: F:\\test\\ppt_name ppt_dir_path = os.path.join(current_dir,ppt_name) # 创建新目录 os.mkdir(ppt_dir_path) # print ppt_file_name, ppt_dir_path ppt_to_jpg(ppt_file_name,ppt_dir_path)以上代码均为本渣渣抄袭而来,仅供学习参考,如有疑问,可度娘解答! 来源: 1.Python 将 PPT 中的图片素材批量导出 https://blog.csdn.net/weixin_43575040/article/details/104631516 2.PPT中出现的图片素材批量导出&PPT全部导出生成图片 https://www.cnblogs.com/xiaoqiangink/p/14486735.html 相关阅读: Python脚本工具,PyMuPDF批量提取PDF文件中的图片·················END················· 你好,我是二大爷, 革命老区外出进城务工人员, 互联网非早期非专业站长, 喜好python,写作,阅读,英语 不入流程序,自媒体,seo . . . 公众号不挣钱,交个网友。 读者交流群已建立,找到我备注 “交流”,即可获得加入我们~ 听说点 “在看” 的都变得更好看呐~ 关注关注二大爷呗~给你分享python,写作,阅读的内容噢~ 扫一扫下方二维码即可关注我噢~ 关注我的都变秃了 说错了,都变强了! 不信你试试 扫码关注最新动态 公众号ID:eryeji |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |