Hvordan laste inn presentasjoner i Python
Aspose.Slides FOSS for Python lets you open any .pptx filen, inspiser innholdet, og enten lagre den tilbake til PPTX eller hente data fra den. Denne guiden dekker åpning av en fil, iterering av lysbilder, lesing av formtekst, og rundtur ved lagring.
Steg-for-steg guide
Steg 1: Installer pakken
pip install aspose-slides-fossSteg 2: Åpne en eksisterende presentasjon
Send filstien til slides.Presentation(). Bruk kontekstbehandleren for å sikre opprydding.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation("input.pptx") as prs:
print(f"Slide count: {len(prs.slides)}")
prs.save("output.pptx", SaveFormat.PPTX)Ukjente XML-deler i kildefilen beholdes ordrett: biblioteket fjerner aldri innhold det ennå ikke forstår.
Steg 3: Inspiser lysbilder
Iterer over alle lysbilder og skriv ut deres indeks:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for i, slide in enumerate(prs.slides):
shape_count = len(slide.shapes)
print(f"Slide {i}: {shape_count} shapes")Steg 4: Les formtekst
Iterer over former og les tekst fra former som har en TextFrame:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for slide in prs.slides:
for shape in slide.shapes:
if hasattr(shape, "text_frame") and shape.text_frame is not None:
text = shape.text_frame.text
if text.strip():
print(f" Shape text: {text!r}")Steg 5: Les dokumentegenskaper
Få tilgang til kjerne-dokumentegenskaper fra prs.document_properties:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
props = prs.document_properties
print(f"Title: {props.title}")
print(f"Author: {props.author}")
print(f"Subject: {props.subject}")Steg 6: Rundtur lagring
Etter å ha inspisert eller endret presentasjonen, lagre den tilbake til PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Lagring til en annen sti oppretter en ny fil. Lagring til samme sti overskriver den opprinnelige.
Vanlige problemer og løsninger
FileNotFoundError
Sjekk at stien til .pptx filen er korrekt i forhold til arbeidskatalogen. Bruk pathlib.Path for robust sti-konstruksjon:
from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
...Exception: File format is not supported
Biblioteket støtter .pptx (Office Open XML) kun. Legacy .ppt (binære PowerPoint 97–2003) filer støttes ikke.
Former har ingen text_frame‑attributt
Noen former (Connectors, PictureFrames, GroupShapes) har ikke en text_frame. Beskytt med hasattr(shape, "text_frame") and shape.text_frame is not None før du får tilgang til tekst.
Ofte stilte spørsmål
Bevarer innlasting alt det opprinnelige innholdet?
Ja. Ukjente XML‑deler beholdes ordrett ved rundreise‑lagring. Biblioteket vil ikke fjerne XML‑innhold det ennå ikke forstår.
Kan jeg laste inn en passordbeskyttet PPTX?
Passordbeskyttede (krypterte) presentasjoner støttes ikke i denne utgaven.
Kan jeg hente ut innebygde bilder?
Få tilgang til bildesamlingen: prs.images returnerer the ImageCollection. Hvert bilde har en content_type og en bytes egenskap for å lese rå bildedata.
Støttes innlasting fra en minne‑strøm?
Laster direkte fra io.BytesIO er ikke eksponert i den nåværende API-en. Skriv byte‑ene til en midlertidig fil først:
import tempfile, os
import aspose.slides_foss as slides
with tempfile.NamedTemporaryFile(suffix=".pptx", delete=False) as tmp:
tmp.write(pptx_bytes)
tmp_path = tmp.name
try:
with slides.Presentation(tmp_path) as prs:
print(f"Slides: {len(prs.slides)}")
finally:
os.unlink(tmp_path)