Ako načítať prezentácie v Pythone
Aspose.Slides FOSS for Python vám umožní otvoriť akýkoľvek .pptx súbor, preskúmať jeho obsah a buď ho uložiť späť do PPTX, alebo z neho extrahovať dáta. Tento sprievodca pokrýva otváranie súboru, prechádzanie snímkami, čítanie textu tvarov a spätné ukladanie.
Návod krok za krokom
Krok 1: Nainštalovať balík
pip install aspose-slides-fossKrok 2: Otvorte existujúcu prezentáciu
Zadajte cestu k súboru do slides.Presentation(). Použite kontextový manažér na zabezpečenie čistenia.
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)Neznáme XML časti v zdrojovom súbore sú zachované doslovne: knižnica nikdy neodstraňuje obsah, ktorý ešte nepozná.
Krok 3: Skontrolovať snímky
Iterujte cez všetky snímky a vypíšte ich 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")Krok 4: Prečítanie textu tvaru
Iterujte cez tvary a prečítajte text z tvarov, ktoré majú 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}")Krok 5: Prečítanie vlastností dokumentu
Získajte základné vlastnosti dokumentu z 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}")Krok 6: Uloženie v oboch smeroch
Po skontrolovaní alebo úprave prezentácie ju uložte späť do PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Uloženie na inú cestu vytvorí nový súbor. Uloženie na rovnakú cestu prepíše pôvodný.
Bežné problémy a riešenia
FileNotFoundError
Skontrolujte, či je cesta k súboru .pptx správna vzhľadom na pracovný adresár. Použite pathlib.Path pre robustnú konštrukciu cesty:
from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
...Exception: File format is not supported
Knižnica podporuje iba .pptx (Office Open XML). Súbory staršej verzie .ppt (binárny PowerPoint 97–2003) nie sú podporované.
Tvary nemajú atribút text_frame
Niektoré tvary (Connectors, PictureFrames, GroupShapes) nemajú text_frame. Pred prístupom k textu použite ochranu pomocou hasattr(shape, "text_frame") and shape.text_frame is not None.
Často kladené otázky
Zachová načítanie všetok pôvodný obsah?
Áno. Neznáme časti XML sa pri uložení v režime round‑trip zachovávajú doslovne. Knižnica neodstráni žiadny XML obsah, ktorý ešte nerozumie.
Môžem načítať PPTX chránený heslom?
Prezentácie chránené heslom (šifrované) nie sú v tejto edícii podporované.
Môžem extrahovať vložené obrázky?
Prístup k zbierke obrázkov: prs.images vracia ImageCollection. Každý obrázok má vlastnosť content_type a vlastnosť bytes na čítanie surových dát obrázka.
Je načítanie z pamäťového streamu podporované?
Načítanie priamo z io.BytesIO nie je v súčasnom API vystavené. Najprv zapíšte bajty do dočasného súboru:
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)