Hur man laddar presentationer i Python
Aspose.Slides FOSS for Python låter dig öppna vilken .pptx‑fil som helst, inspektera dess innehåll och antingen spara den tillbaka till PPTX eller extrahera data från den. Denna guide täcker att öppna en fil, iterera bilder, läsa formtext och round‑tripping av sparandet.
Steg-för-steg-guide
Steg 1: Installera paketet
pip install aspose-slides-fossSteg 2: Öppna en befintlig presentation
Skicka filvägen till slides.Presentation(). Använd kontext‑hanteraren för att säkerställa rensning.
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)Okända XML-delar i källfilen bevaras ordagrant: biblioteket tar aldrig bort innehåll som det ännu inte förstår.
Steg 3: Inspektera bilder
Iterera över alla bilder och skriv ut deras index:
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: Läs formtext
Iterera över former och läs text från 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: Läs dokumentegenskaper
Åtkomst till grundläggande dokumentegenskaper från 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: Spara med rundresa
Efter att ha granskat eller ändrat presentationen, spara den tillbaka till PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Att spara till en annan sökväg skapar en ny fil. Att spara till samma sökväg skriver över den ursprungliga.
Vanliga problem och lösningar
FileNotFoundError
Kontrollera att sökvägen till .pptx‑filen är korrekt i förhållande till arbetskatalogen. Använd pathlib.Path för robust sökvägskonstruktion:
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öder endast .pptx (Office Open XML). Äldre .ppt (binära PowerPoint 97–2003) filer stöds inte.
Shapes har inget text_frame-attribut
Vissa former (Connectors, PictureFrames, GroupShapes) har ingen text_frame. Skydda med hasattr(shape, "text_frame") and shape.text_frame is not None innan du får åtkomst till texten.
Vanliga frågor
Bevarar laddning allt originalinnehåll?
Ja. Okända XML-delar bevaras ordagrant vid rundresesparning. Biblioteket kommer inte att ta bort något XML-innehåll som det ännu inte förstår.
Kan jag ladda en lösenordsskyddad PPTX?
Lösenordsskyddade (krypterade) presentationer stöds inte i den här utgåvan.
Kan jag extrahera inbäddade bilder?
Åtkomst till bildsamlingen: prs.images returnerar ImageCollection. Varje bild har en content_type och en bytes egenskap för att läsa de råa bilddata.
Stöds inläsning från en minnesström?
Laddning direkt från io.BytesIO är inte exponerad i det nuvarande API:et. Skriv först bytes till en temporär fil:
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)