31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
import zipfile
|
|
import re
|
|
|
|
ppt = r"D:\F\yc\课程上架\福田商圈夜校\课程视频\钢琴演奏入门第一课.pptx"
|
|
|
|
with zipfile.ZipFile(ppt, "r") as z:
|
|
names = z.namelist()
|
|
slide_files = [f for f in names if f.startswith("ppt/slides/slide") and f.endswith(".xml")]
|
|
print(f"Total files in zip: {len(names)}")
|
|
print(f"Slide files found: {len(slide_files)}")
|
|
print(f"First 5 slide files: {slide_files[:5]}")
|
|
|
|
# Test presentation.xml
|
|
try:
|
|
pres_xml = z.read("ppt/presentation.xml").decode("utf-8", errors="replace")
|
|
sld_ids = re.findall(r'<p:sldId\b[^>]*r:id="([^"]+)"', pres_xml)
|
|
print(f"\nsldIdList rIds: {sld_ids[:5]}")
|
|
except Exception as e:
|
|
print(f"\npresentation.xml error: {e}")
|
|
|
|
# Test rels
|
|
try:
|
|
rels_xml = z.read("ppt/_rels/presentation.xml.rels").decode("utf-8", errors="replace")
|
|
rid_to_target = dict(re.findall(r'Id="([^"]+)"[^>]*Target="([^"]+)"', rels_xml))
|
|
print(f"Rels entries: {len(rid_to_target)}")
|
|
# Show a sample
|
|
for k, v in list(rid_to_target.items())[:3]:
|
|
print(f" {k} -> {v}")
|
|
except Exception as e:
|
|
print(f"\nrels error: {e}")
|