diff --git a/py-src/del_ppt.py b/py-src/del_ppt.py new file mode 100644 index 0000000..a650cb7 --- /dev/null +++ b/py-src/del_ppt.py @@ -0,0 +1,49 @@ +import os +import shutil +from pptx import Presentation +from pptx.util import Inches +from PIL import Image + +# 指定包含PPT文件的文件夹 +folder_path = 'C:/Users/Administrator/Desktop/测试' + + +def del_slide(presentation, slide_index): + """ + 删除某一张幻灯片并返回该幻灯片对象 + :param presentation: Presentation 对象 + :param slide_index: 索引 + :return: 被删除的幻灯片对象 + """ + + slides = list(presentation.slides._sldIdLst) + slide_to_delete = slides[slide_index] + presentation.slides._sldIdLst.remove(slide_to_delete) + return slide_to_delete # 返回被删除的幻灯片对象 + +def delete_last_slide_from_ppt(ppt_path): + """ + 从PPT中删除最后一张幻灯片 + :param ppt_path: PPT文件路径 + """ + prs = Presentation(ppt_path) + last_slide_index = len(prs.slides) - 1 + if last_slide_index >= 0: + del_slide(prs, last_slide_index) + prs.save(ppt_path) + print(f"已删除最后一张幻灯片: {ppt_path}") + else: + print(f"pptx文件中没有幻灯片: {ppt_path}") + +def batch_delete_last_slides(directory): + """ + 批量删除每个PPT的最后一张幻灯片 + :param directory: 文件夹路径 + """ + for filename in os.listdir(directory): + if filename.endswith('.pptx') or filename.endswith('.ppt'): + ppt_path = os.path.join(directory, filename) + delete_last_slide_from_ppt(ppt_path) + +# 调用批量删除函数 +batch_delete_last_slides(folder_path) \ No newline at end of file