Hoe paginametagegevens van OneNote lezen in Python
OneNote .one-bestanden slaan metadata op die je kunt lezen zonder de volledige document‑DOM te parseren. Op document-niveau geeft Document.FileFormat aan welke OneNote-variant het bestand gebruikt. Op page-niveau bevat elk Page de auteur, aanmaak‑tijdstempel, laatst‑gewijzigde tijdstempel en hiërarchisch niveau. Aspose.Note FOSS voor Python maakt deze beschikbaar via de Document- en Page-klassen.
Voorvereisten
pip install aspose-noteDocumentniveau-metadata
Het Document-object stelt één metagegeven‑eigenschap beschikbaar:
| Eigenschap | Type | Beschrijving |
|---|---|---|
doc.FileFormat | FileFormat | De OneNote-variant: FileFormat.OneNote2010, FileFormat.OneNoteOnline, of FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Pagina‑niveau‑metadata
Elk Page object bevat:
| Property | Type | Description |
|---|---|---|
page.Author | str | None | De weergavenaam van de gebruiker die de pagina heeft aangemaakt of bezit. |
page.CreationTime | datetime | None | Wanneer de pagina is aangemaakt. Retourneert een Python datetime object in UTC. |
page.LastModifiedTime | datetime | None | Wanneer de pagina voor het laatst is gewijzigd. |
page.Level | int | None | Inspringniveau van subpagina. 0 = topniveaupagina, 1 = subpagina van eerste niveau, 2 = tweede niveau, enz. |
Stap 1: Metagegevens lezen voor elke pagina
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}")Volledig voorbeeld: Metadata-rapport
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")Detecteren van subpagina’s
In OneNote worden subpagina’s visueel ingesprongen onder hun bovenliggende pagina. De page.Level‑eigenschap weerspiegelt deze hiërarchie:
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)'}")Niveauwaarden:
0: pagina op het hoogste niveau1: subpagina van het eerste niveau (één inspringing)2: subpagina van het tweede niveau (twee inspringingen)
Notities
- Alle tijdstempels (
CreationTime,LastModifiedTime) zijndatetimeobjecten in UTC wanneer aanwezig. page.LevelretourneertNonevoor pagina’s waar het niveau niet is opgeslagen in het binaire formaat. BehandelNoneals0met behulp vanpage.Level or 0.