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

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')


回答:

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

以上是 Python pptx模块能不能删除指定页码的slides 的全部内容, 来源链接: utcz.com/a/158003.html

回到顶部