Python pptx模块能不能删除指定页码的slides

比如我有一份ppt模板,里面有20张slides,我想删掉其中的第5页,第7页,第16页等等,删除的页根据情况不同会有变化,我写了一下的程序,但是只能从头到尾连续删除,应该是每次都会reindex的缘故,只有0才能被准确定位

from pptx import Presentation
# 创建幻灯片 ------
prs = Presentation('new.pptx')  

# 删除不需要的模板
def delete_slides(presentation, index):
        xml_slides = presentation.slides._sldIdLst  
        slides = list(xml_slides)
        xml_slides.remove(slides[index])  
        
#只能顺序删除  
for i in range(3,23,1):
        delete_slides(prs,0)
prs.save('test_template2.pptx')   
阅读 3.2k
1 个回答

idx_page = { i + 1: page for i, page in enumerate(prs.slides._sldIdLst)}
维护一个map,然后每次删除index对应的page

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题