Ako čítať metadáta stránky z OneNote v Pythone
OneNote .one súbory ukladajú metadáta, ktoré môžete čítať bez parsovania celého dokumentu DOM. Na úrovni document Document.FileFormat vám hovorí, ktorú variantu OneNote súbor používa. Na úrovni page každý Page obsahuje autora, časové razítko vytvorenia, časové razítko poslednej úpravy a úroveň hierarchie. Aspose.Note FOSS pre Python tieto exponuje prostredníctvom tried Document a Page.
Požiadavky
pip install aspose-noteMetadáta na úrovni dokumentu
Objekt Document vystavuje jednu metadátovú vlastnosť:
| Vlastnosť | Typ | Popis |
|---|---|---|
doc.FileFormat | FileFormat | Varianta OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline alebo FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Metadáta na úrovni stránky
Každý objekt Page obsahuje:
| Property | Type | Description |
|---|---|---|
page.Author | str | None | Zobrazované meno používateľa, ktorý stránku vytvoril alebo jej vlastní. |
page.CreationTime | datetime | None | Kedy bola stránka vytvorená. Vráti objekt Python datetime v UTC. |
page.LastModifiedTime | datetime | None | Kedy bola stránka naposledy upravená. |
page.Level | int | None | Úroveň odsadenia podstránky. 0 = stránka najvyššej úrovne, 1 = podstránka prvej úrovne, 2 = podstránka druhej úrovne, atď. |
Krok 1: Prečítajte metadáta pre každú stránku
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}")Kompletný príklad: Správa metadát
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")Detekcia podstránok
V OneNote sú podstránky vizuálne odsadené pod ich nadradenú stránku. Vlastnosť page.Level odráža toto vnorenie:
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)'}")Hodnoty úrovní:
0: stránka najvyššej úrovne1: podstránka prvej úrovne (jedno odsadenie)2: podstránka druhej úrovne (dve odsadenia)
Poznámky
- Všetky časové značky (
CreationTime,LastModifiedTime) súdatetimeobjekty v UTC, keď sú prítomné. page.LevelvraciaNonepre stránky, kde úroveň nebola uložená v binárnom formáte. PovažujteNoneza0pomocoupage.Level or 0.