Kako pročitati metapodatke stranice iz OneNote-a u Python
OneNote .one datoteke čuvaju metapodatke koje možete pročitati bez parsiranja celog DOM‑a dokumenta. Na dokument nivou, Document.FileFormat vam govori koju OneNote varijantu fajl koristi. Na stranici nivou, svaki Page sadrži autora, vreme kreiranja, vreme poslednje izmene i nivo hijerarhije. Aspose.Note FOSS za Python izlaže ovo kroz Document i Page klase.
Preduslovi
pip install aspose-noteMetapodaci na nivou dokumenta
The Document objekat izlaže jedno svojstvo metapodataka:
| Svojstvo | Tip | Opis |
|---|---|---|
doc.FileFormat | FileFormat | Varijanta OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, ili FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Metapodaci na nivou stranice
Svaki Page objekat sadrži:
| Svojstvo | Tip | Opis |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
Korak 1: Pročitajte metapodatke za svaku stranicu
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}")Kompletan primer: Izveštaj o metapodacima
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")Otkrivanje podstranica
U OneNote‑u, podstranice su vizuelno uvučene ispod svoje nadređene stranice. Svojstvo page.Level odražava ovo ugnježđivanje:
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)'}")Vrednosti nivoa:
0: glavna stranica1: podstranica prvog nivoa (jedno uvlačenje)2: podstranica drugog nivoa (dva uvlačenja)
Beleške
- Svi vremenski žigovi (
CreationTime,LastModifiedTime) sudatetimeobjekti u UTC kada su prisutni. page.LevelvraćaNoneza stranice gde nivo nije sačuvan u binarnom formatu. TretirajteNonekao0koristećipage.Level or 0.