Wie man Seiten-Metadaten aus OneNote in Python liest

Wie man Seiten-Metadaten aus OneNote in Python liest

OneNote .one DOM-Dateien speichern Metadaten, die Sie ohne das gesamte Dokument zu analysieren lesen können. Dokument der Ebene, Document.FileFormat Sie können die Versionen von OneNote, die in der Datei verwendet werden. Seite die einzelnen Page enthält den Autor, die Zeitmarke der Erstellung, das letzte Modifizierte und die Hierarchie. Aspose.Note FOSS für Python zeigt diese durch die Document und . Page Unterricht.


Voraussetzungen für die Durchführung der Maßnahmen

pip install aspose-note

Metadaten auf Dokumentenebene

Die Document Objekt zeigt eine Metadaten-Eigenschaft:

Immobilien und VermögenswerteTyp derBeschreibung
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

Jeder von ihnen Page Objekt trägt:

Immobilien und VermögenswerteTyp derBeschreibung
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: Metadatenbericht

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")

Unterseiten erkennen

In OneNote sind Unterseiten visuell unter ihrer Hauptseite eingeschränkt. 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)'}")

Niveauwerte:

  • 0: Seite der obersten Ebene
  • 1: Unterseite der ersten Ebene (ein Gedankenstrich)
  • 2: Unterseite zweiter Stufe (zwei Gedankenstücke)

Anmerkungen

  • Alle Zeitmarken (CreationTime, LastModifiedTime) sind: datetime Gegenstände in UTC, wenn vorhanden.
  • page.Level Rückgabe None für Seiten, auf denen das Level nicht im binären Format gespeichert wurde. None als 0 Verwendung von page.Level or 0.

Siehe auch:

 Deutsch