Kaip perskaityti puslapio metaduomenis iš OneNote naudojant Python
OneNote .one failai saugo metaduomenis, kuriuos galite perskaityti neanalizuodami viso dokumento DOM. Šiame dokumentas lygyje, Document.FileFormat nurodo, kurią OneNote variantą failas naudoja. Šiame puslapyje lygyje, kiekvienas Page nurodo autorių, sukūrimo laiko žymą, paskutinio pakeitimo laiko žymą ir hierarchijos lygį. Aspose.Note FOSS for Python pateikia tai per Document ir Page klases.
Būtinosios sąlygos
pip install aspose-noteDokumento lygio metaduomenys
Šis 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 lygio metaduomenys
Kiekvienas Page objektas turi:
| Savybė | Tipas | Aprašymas |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
1 žingsnis: 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 subpuslapiai vizualiai įtraukiami po jų tėviniu 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: viršutinio lygio puslapis1: pirmo lygio subpuslapis (vienas įtraukimas)2: antro lygio subpuslapis (du įtraukimai)
Pastabos
- Visi laiko žymėjimai (
CreationTime,LastModifiedTime) yradatetimeobjektai UTC, kai yra. page.LevelgrąžinaNonepuslapiams, kurių lygis nebuvo saugomas dvejetainėje formate. TraktuokiteNonekaip0naudojantpage.Level or 0.