Hvordan lese side‑metadata fra OneNote i Python
OneNote .one‑filer lagrer metadata du kan lese uten å parse hele dokument‑DOM‑en. På document‑nivå forteller Document.FileFormat deg hvilken OneNote‑variant filen bruker. På page‑nivå inneholder hver Page forfatter, opprettelsestidsstempel, sist‑endret tidsstempel og hierarkinivå. Aspose.Note FOSS for Python eksponerer disse gjennom Document‑ og Page‑klassene.
Forutsetninger
pip install aspose-noteMetadata på dokumentnivå
Document‑objektet eksponerer én metadata‑egenskap:
| Egenskap | Type | Beskrivelse |
|---|---|---|
doc.FileFormat | FileFormat | OneNote‑varianten: FileFormat.OneNote2010, FileFormat.OneNoteOnline eller FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Metadata på sidenivå
Hvert Page‑objekt inneholder:
| Property | Type | Description |
|---|---|---|
page.Author | str | None | Visningsnavnet til brukeren som opprettet eller eier siden. |
page.CreationTime | datetime | None | Når siden ble opprettet. Returnerer et Python datetime-objekt i UTC. |
page.LastModifiedTime | datetime | None | Når siden sist ble endret. |
page.Level | int | None | Innrykknivå for underside. 0 = toppnivåside, 1 = første nivå underside, 2 = andre nivå, osv. |
Trinn 1: Les metadata for hver side
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}")Fullstendig eksempel: Metadatrapport
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")Oppdage undersider
I OneNote er undersider visuelt innrykket under sin overordnede side. Egenskapen page.Level gjenspeiler denne innrykkingen:
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)'}")Nivåverdier:
0: toppnivåside1: første nivå underside (én innrykk)2: andre nivå underside (to innrykk)
Notater
- Alle tidsstempler (
CreationTime,LastModifiedTime) erdatetime‑objekter i UTC når de er tilstede. page.LevelreturnererNonefor sider hvor nivået ikke ble lagret i det binære formatet. BehandleNonesom0ved bruk avpage.Level or 0.