# encoding=utf8 #-*-coding:utf-8 -*- #pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple #pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple #pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple # pip install --upgrade python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple import os import re import win32com.client as win32 from pptx import Presentation def find(s): pat = re.compile(r"\d+") result = pat.match(s) return int(result.group(0)) def join_ppt(path:str): """ :param path: ppt所在文件路径 :return: None """ files = os.listdir(path) files.sort(key = find) Application = win32.gencache.EnsureDispatch("PowerPoint.Application") abs_path = os.path.join(path, files[0]) exit_ppt = Application.Presentations.Open(abs_path) Application.Visible = 1 #表示应用要先打开 new_ppt = Application.Presentations.Add() #执行合并操作 for file in files: abs_path = os.path.join(path, file) exit_ppt = Application.Presentations.Open(abs_path) print('正在操作的文件:', abs_path) page_num = exit_ppt.Slides.Count exit_ppt.Close() new_ppt.Slides.InsertFromFile(abs_path, new_ppt.Slides.Count, 1, page_num) new_ppt.Save() # 括号内为保存位置:如C:\Users\Administrator\Documents\下 print("组合的PPT已经生成,请手动保存新生成的PPT文件") Application.Quit() #退出PPT应用,此处注释掉,为了可以手动查看生成的文件保存的位置 hebing_ppt_mulu = r"D:\PycharmProjects\xiaoxiaomu\制作PPT\49\ppt\newPPt" #所有需要合并PPT的路径(把所有需要合并的PPT都放到通过一个目录下, 且保证目录下仅有需要合并的PPT文件) print("请保证 hebing_ppt_mulu 变量 路径下只有PPT文件") join_ppt(hebing_ppt_mulu) print("我的新生成的合并文件为:文档\演示文稿1.pptx,你可以注释掉Application.Quit(),然后手动查看你自己的合并文件的位置")