Hoe bijgevoegde bestanden van OneNote opslaan in Python
OneNote .one-bestanden kunnen ingebedde bestandsbijlagen bevatten: elk bestandstype dat in een pagina is ingevoegd via Insert → File Attachment in OneNote. Aspose.Note FOSS for Python maakt deze beschikbaar via de AttachedFile-klasse, die de oorspronkelijke bestandsnaam en de ruwe bytes van het ingebedde bestand levert.
Voorvereisten
pip install aspose-noteStap 1: Laad het document
from aspose.note import Document
doc = Document("MyNotes.one")Stap 2: Zoek alle bijgevoegde bestanden
Gebruik GetChildNodes(AttachedFile) om recursief elke bijlage in het document te verzamelen, ongeacht op welke pagina of outline deze verschijnt:
from aspose.note import Document, AttachedFile
doc = Document("MyNotes.one")
attachments = doc.GetChildNodes(AttachedFile)
print(f"Found {len(attachments)} attachment(s)")Stap 3: Sla elke bijlage op schijf
Toegang af.Bytes voor de ruwe bestandsinhoud en af.FileName voor de oorspronkelijke naam. Bescherm altijd tegen een None bestandsnaam: de bibliotheek retourneert None wanneer de bestandsnaammetadata niet in het bestand is opgeslagen:
from aspose.note import Document, AttachedFile
doc = Document("MyNotes.one")
for i, af in enumerate(doc.GetChildNodes(AttachedFile), start=1):
name = af.FileName or f"attachment_{i}.bin"
with open(name, "wb") as f:
f.write(af.Bytes)
print(f"Saved: {name} ({len(af.Bytes):,} bytes)")Volledig voorbeeld
Dit script haalt alle bijlagen uit een .one‑bestand en slaat ze op in een speciale uitvoermap:
from pathlib import Path
from aspose.note import Document, AttachedFile
def save_all_attachments(one_path: str, out_dir: str = "attachments") -> None:
doc = Document(one_path)
out = Path(out_dir)
out.mkdir(exist_ok=True)
attachments = doc.GetChildNodes(AttachedFile)
if not attachments:
print("No attachments found.")
return
for i, af in enumerate(attachments, start=1):
name = af.FileName or f"attachment_{i}.bin"
dest = out / name
dest.write_bytes(af.Bytes)
print(f" [{i}] {name} ({len(af.Bytes):,} bytes)")
print(f"\nSaved {len(attachments)} file(s) to '{out_dir}/'")
save_all_attachments("MyNotes.one")Notities
af.Bytesretourneertb""(lege bytes) wanneer de bijlagegegevens niet konden worden geparseerd uit het binaire bestand. Controleerlen(af.Bytes) > 0vóór het opslaan als je lege bijlagen wilt overslaan.af.Tagsis een lijst vanNoteTag‑objecten als de bijlage OneNote‑tags heeft.- Aspose.Note FOSS for Python leest
.one‑bestanden maar schrijft niet terug naar.one. Je kunt geen bijlagen maken of wijzigen.