Kaip nuskaityti puslapio metaduomenis iš OneNote naudojant Python

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-note

Dokumento lygmens metaduomenys

Document objektas atskleidžia vieną metaduomenų savybę:

SavybėTipasAprašymas
doc.FileFormatFileFormatOneNote 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:

PropertyTypeDescription
page.Authorstr | NoneRodomas vartotojo vardas, kuris sukūrė arba yra puslapio savininkas.
page.CreationTimedatetime | NoneKada puslapis buvo sukurtas. Grąžina Python datetime objektą UTC laiku.
page.LastModifiedTimedatetime | NoneKada puslapis buvo paskutinį kartą modifikuotas.
page.Levelint | NonePuslapio 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 puslapis
  • 1: pirmo lygio subpuslapis (vienas įtraukimas)
  • 2: antro lygio subpuslapis (du įtraukimai)

Pastabos

  • Visi laiko žymėjimai (CreationTime, LastModifiedTime) yra datetime objektai UTC laiku, kai jie yra.
  • page.Level grąžina None puslapiams, kurių lygis nebuvo išsaugotas dvejetainėje formate. Traktuokite None kaip 0 naudojant page.Level or 0.

Žr. taip pat

 Lietuvių