Kaip nuskaityti puslapio metaduomenis iš OneNote naudojant Python
OneNote .one failai saugo metaduomenis, kuriuos galite perskaityti neanalizuodami viso dokumento DOM. Dokumento lygyje, Document.FileFormat nurodo, kurią OneNote variantą failas naudoja. Puslapio lygyje, kiekvienas Page talpina autorių, sukūrimo laiko žymą, paskutinio pakeitimo laiko žymą ir hierarchijos lygį. Aspose.Note FOSS for Python atskleidžia tai per Document ir Page klases.
Būtinosios sąlygos
pip install aspose-noteDokumento lygmens metaduomenys
Document objektas atskleidžia vieną metaduomenų savybę:
| Savybė | Tipas | Aprašymas |
|---|---|---|
doc.FileFormat | FileFormat | OneNote variantas: FileFormat.OneNote2010, FileFormat.OneNoteOnline, arba FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Puslapio lygmens metaduomenys
Kiekvienas Page objektas turi:
| Property | Type | Description |
|---|---|---|
page.Author | str | None | Rodomas vartotojo vardas, kuris sukūrė arba yra puslapio savininkas. |
page.CreationTime | datetime | None | Kada puslapis buvo sukurtas. Grąžina Python datetime objektą UTC laiku. |
page.LastModifiedTime | datetime | None | Kada puslapis buvo paskutinį kartą modifikuotas. |
page.Level | int | None | Puslapio po‑puslapio įtraukos lygis. 0 = aukščiausio lygio puslapis, 1 = pirmo lygio po‑puslapis, 2 = antro lygio ir t.t. |
Žingsnis 1: perskaityti metaduomenis kiekvienam puslapiui
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}")Pilnas pavyzdys: Metaduomenų ataskaita
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")Subpuslapių aptikimas
OneNote programoje po‑puslapiai vizualiai įtraukiami po jų tėvo puslapiu. page.Level savybė atspindi šį įdėjimą:
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)'}")Lygio reikšmės:
0: pagrindinis puslapis1: pirmo lygio subpuslapis (vienas įtraukimas)2: antro lygio subpuslapis (du įtraukimai)
Pastabos
- Visi laiko žymėjimai (
CreationTime,LastModifiedTime) yradatetimeobjektai UTC laiku, kai jie yra. page.LevelgrąžinaNonepuslapiams, kurių lygis nebuvo išsaugotas dvejetainėje formate. TraktuokiteNonekaip0naudojantpage.Level or 0.