Wie man Seiten-Metadaten aus OneNote in Python liest

Wie man Seiten-Metadaten aus OneNote in Python liest

OneNote .one Dateien speichern Metadaten, die Sie lesen können, ohne das gesamte Dokument‑DOM zu parsen. Auf der Dokument Ebene, Document.FileFormat teilt Ihnen mit, welche OneNote‑Variante die Datei verwendet. Auf der Seite Ebene, jeder Page enthält den Autor, den Erstellungszeitstempel, den zuletzt geänderten Zeitstempel und die Hierarchieebene. Aspose.Note FOSS für Python stellt diese über die Document und Page Klassen.


Voraussetzungen

pip install aspose-note

Metadaten auf Dokumentebene

Der Document Objekt stellt eine Metadaten-Eigenschaft bereit:

EigenschaftTypBeschreibung
doc.FileFormatFileFormatDie OneNote-Variante: FileFormat.OneNote2010, FileFormat.OneNoteOnline, oder FileFormat.Unknown.
from aspose.note import Document

doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")

Metadaten auf Seitenebene

Jede Page Objekt enthält:

EigenschaftTypBeschreibung
page.Author`strNone`
page.CreationTime`datetimeNone`
page.LastModifiedTime`datetimeNone`
page.Level`intNone`

Schritt 1: Metadaten für jede Seite lesen

from aspose.note import Document, Page

doc = Document("ProjectNotes.one")

for i, page in enumerate(doc, start=1):
    title = ""
    if page.Title and page.Title.TitleText:
        title = page.Title.TitleText.Text.strip()

    level = page.Level or 0
    indent = "  " * level

    author = page.Author or "(unknown)"
    created = page.CreationTime.strftime("%Y-%m-%d") if page.CreationTime else "(none)"
    modified = page.LastModifiedTime.strftime("%Y-%m-%d %H:%M") if page.LastModifiedTime else "(none)"

    print(f"{indent}[{i}] {title or '(untitled)'}")
    print(f"{indent}    Author:   {author}")
    print(f"{indent}    Created:  {created}")
    print(f"{indent}    Modified: {modified}")
    print(f"{indent}    Level:    {level}")

Vollständiges Beispiel: Metadaten‑Bericht

from aspose.note import Document

def print_metadata_report(one_path: str) -> None:
    doc = Document(one_path)

    print()

    for i, page in enumerate(doc, start=1):
        title = ""
        if page.Title and page.Title.TitleText:
            title = page.Title.TitleText.Text.strip()

        level = page.Level or 0
        prefix = "  " * level + f"[{i}]"

        parts = [prefix, f'"{title or "(untitled)"}"']
        if page.Author:
            parts.append(f"by {page.Author}")
        if page.CreationTime:
            parts.append(f"created {page.CreationTime.strftime('%Y-%m-%d')}")
        if page.LastModifiedTime:
            parts.append(f"modified {page.LastModifiedTime.strftime('%Y-%m-%d')}")

        print("  ".join(parts))

print_metadata_report("ProjectNotes.one")

Erkennen von Unterseiten

In OneNote werden Unterseiten visuell unter ihrer übergeordneten Seite eingerückt. Die page.Level Eigenschaft spiegelt diese Verschachtelung wider:

from aspose.note import Document

doc = Document("MyNotes.one")

for page in doc:
    level = page.Level or 0
    title = ""
    if page.Title and page.Title.TitleText:
        title = page.Title.TitleText.Text.strip()

    indent = "  " * level
    marker = "├─" if level > 0 else "•"
    print(f"{indent}{marker} {title or '(untitled)'}")

Level‑Werte:

  • 0: Seite der obersten Ebene
  • 1: Unterseite der ersten Ebene (eine Einrückung)
  • 2: Unterseite der zweiten Ebene (zwei Einrückungen)

Hinweise

  • Alle Zeitstempel (CreationTime, LastModifiedTime) sind datetime Objekte in UTC, wenn vorhanden.
  • page.Level gibt zurück None für Seiten, bei denen das Level nicht im Binärformat gespeichert wurde. Behandle None als 0 unter Verwendung von page.Level or 0.

Siehe auch

 Deutsch