Wie man beigefügte Dateien von OneNote in Python speichert
OneNote .one Dateien können eingebettete Dateiauflagen enthalten: jeder Dateityp, der in eine Seite mit dem Einfügen → Dateianlage in OneNote. Aspose.Note FOSS für Python zeigt diese durch die AttachedFile Die Datenbank wird von der Klasse “Class” erstellt, die den ursprünglichen Dateinamen und die Rohbyte der eingebetteten Datei enthält.
Voraussetzungen für die Durchführung der Maßnahmen
pip install aspose-noteSchritt 1: Laden des Dokuments ein
from aspose.note import Document
doc = Document("MyNotes.one")Schritt 2: Alle angehängten Dateien finden
Verwendung GetChildNodes(AttachedFile) die Rekursivberechnung aller Anhänge des Dokuments, unabhängig davon, auf welcher Seite oder in welchem Umriss sie erscheinen:
from aspose.note import Document, AttachedFile
doc = Document("MyNotes.one")
attachments = doc.GetChildNodes(AttachedFile)
print(f"Found {len(attachments)} attachment(s)")Schritt 3: Speichern Sie jede Anlage auf Festplatte
Zugang zu den Informationen af.Bytes für den Rohbestand und af.FileName Ich habe den Namen des Verbandes für die Originalbezeichnung verwendet. None Dateiname: die Bibliothek gibt zurück None wenn die Datennamen-Metadaten nicht in der Datei gespeichert wurden:
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)")Vollständiges Beispiel
Dieses Skript extrahiert alle Anhänge von einem .one Datei und speichert sie in einem dedizierten Ausgabeverzeichnis:
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")Anmerkungen
af.BytesRückgabeb""(leere Bytes), wenn die Anlage-Daten nicht aus der binären Datei parsiert werden konnten.len(af.Bytes) > 0Bevor Sie speichern, wenn Sie leere Anlagen überspringen möchten.af.Tagsist eine Liste vonNoteTagObjekte, wenn die Anlage mit OneNote-Tags versehen ist.- Aspose.Note FOSS for Python reads
.oneDateien, aber nicht zurückschreiben auf.one.Sie können keine Anhänge erstellen oder ändern.