Kako pročitati metapodatke stranice iz OneNotea u Pythonu
OneNote .one datoteke pohranjuju metapodatke koje možete pročitati bez parsiranja cijelog DOM‑a dokumenta. Na razini dokumenta, Document.FileFormat vam govori koju OneNote varijantu datoteka koristi. Na razini stranice, svaki Page sadrži autora, vremensku oznaku stvaranja, vremensku oznaku posljednje izmjene i razinu hijerarhije. Aspose.Note FOSS for Python izlaže to putem klasa Document i Page.
Preduvjeti
pip install aspose-noteMetapodaci na razini dokumenta
Objekt Document izlaže jedno svojstvo metapodataka:
| Svojstvo | Tip | Opis |
|---|---|---|
doc.FileFormat | FileFormat | Varijanta OneNotea: FileFormat.OneNote2010, FileFormat.OneNoteOnline ili FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Metapodaci na razini stranice
Svaki Page objekt sadrži:
| Property | Type | Description |
|---|---|---|
page.Author | str | None | Prikazano ime korisnika koji je stvorio ili je vlasnik stranice. |
page.CreationTime | datetime | None | Kada je stranica stvorena. Vraća Python datetime objekt u UTC. |
page.LastModifiedTime | datetime | None | Kada je stranica zadnji put izmijenjena. |
page.Level | int | None | Razina uvlake podstranice. 0 = stranica najviše razine, 1 = podstranica prve razine, 2 = podstranica druge razine, itd. |
Korak 1: Pročitaj 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 primjer: Izvješće 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 OneNoteu, podstranice su vizualno uvučene ispod svoje nadređene stranice. Svojstvo page.Level odražava ovo ugniježđ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)'}")Level values:
0: stranica najviše razine1: podstranica prve razine (jedno uvlačenje)2: podstranica druge razine (dva uvlačenja)
Bilješke
- Svi vremenski žigovi (
CreationTime,LastModifiedTime) sudatetimeobjekti u UTC kada su prisutni. page.LevelvraćaNoneza stranice gdje razina nije pohranjena u binarnom formatu. SmatrajteNonekao0koristećipage.Level or 0.