python
1
2import pptx
3
4prs = pptx.Presentation(pptx_file)
5for layout in prs.slide_layouts:
6 uslides = layout.used_by_slides
7 if len(uslides)>0:
8 print(f"{layout.name}: {len(uslides)}")
9
一つのファイルの場合、上記のコードでスライドレイアウト名称と参照されているスライドの数が列挙できます。
これをベースにすれば、複数のスライドでも、スライドレイアウト名称でカウントアップしていけば、全体の参照カウントを行うことができるでしょう。
すいません、質問の意図を読み違えていました。
スライドマスターの名称はAPIとして用意されていないようなので、内部XMLから読み出す必要がありました。
以下のような感じでいかがでしょう。
python
1import pptx
2from pptx.opc.constants import CONTENT_TYPE as CT, RELATIONSHIP_TYPE as RT
3from pptx.opc.oxml import parse_xml
4
5def count_slide_layouts(slide_layouts):
6 count = 0
7 for layout in slide_layouts:
8 uslides = layout.used_by_slides
9 count += len(uslides)
10
11 return count
12
13prs = pptx.Presentation(pptx_file)
14
15for master in prs.slide_masters:
16 mpart = master.part
17 tpart = mpart.part_related_by(RT.THEME)
18 xml = parse_xml(tpart.blob)
19 cnt = count_slide_layouts(master.slide_layouts)
20 print(f"{xml.attrib['name']}: {cnt}")
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/08 05:28
2021/04/08 11:58
2021/04/09 08:40