35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
import zipfile, re, sys
|
|
|
|
ppt = r"D:\F\yc\课程上架\福田商圈夜校\课程视频\钢琴演奏入门第一课.pptx"
|
|
out = r"D:\F\NewI\opencode\daily-workspace\temp\debug_ppt_out.txt"
|
|
|
|
results = []
|
|
|
|
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")]
|
|
results.append(f"Total files in zip: {len(names)}")
|
|
results.append(f"Slide files found: {len(slide_files)}")
|
|
results.append(f"First 5: {slide_files[:5]}")
|
|
|
|
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)
|
|
results.append(f"sldIds: {sld_ids[:5]}")
|
|
except Exception as e:
|
|
results.append(f"pres error: {e}")
|
|
|
|
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))
|
|
results.append(f"rels count: {len(rid_to_target)}")
|
|
for k, v in list(rid_to_target.items())[:3]:
|
|
results.append(f" {k} -> {v}")
|
|
except Exception as e:
|
|
results.append(f"rels error: {e}")
|
|
|
|
with open(out, "w", encoding="utf-8") as f:
|
|
f.write("\n".join(results))
|
|
|
|
print("Done, see", out)
|