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-noteMetadaten auf Dokumentebene
Der Document Objekt stellt eine Metadaten-Eigenschaft bereit:
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
doc.FileFormat | FileFormat | Die 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:
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
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 Ebene1: Unterseite der ersten Ebene (eine Einrückung)2: Unterseite der zweiten Ebene (zwei Einrückungen)
Hinweise
- Alle Zeitstempel (
CreationTime,LastModifiedTime) sinddatetimeObjekte in UTC, wenn vorhanden. page.Levelgibt zurückNonefür Seiten, bei denen das Level nicht im Binärformat gespeichert wurde. BehandleNoneals0unter Verwendung vonpage.Level or 0.