Ako čítať metadáta stránky z OneNote v Python
OneNote .one súbory ukladajú metadáta, ktoré môžete čítať bez parsovania celého DOM dokumentu. Na dokument úrovni, Document.FileFormat hovorí vám, ktorú variantu OneNote súbor používa. Na stránke úrovni, každý Page obsahuje autora, časové razítko vytvorenia, časové razítko poslednej úpravy a úroveň hierarchie. Aspose.Note FOSS pre Python tieto údaje sprístupňuje prostredníctvom Document a Page tried.
Požiadavky
pip install aspose-noteMetadáta na úrovni dokumentu
Objekt Document objekt vystavuje jednu vlastnosť metadát:
| 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ý Page objekt nesie:
| Vlastnosť | Typ | Popis |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
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 o metadátach
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. The page.Level property reflects this nesting:
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 úrovne:
0: hlavná stránka1: 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, ak sú prítomné. page.LevelvraciaNonepre stránky, kde úroveň nebola uložená v binárnom formáte. SpracujteNoneako0používaniepage.Level or 0.