Kaip perskaityti puslapio metaduomenis iš OneNote naudojant Python

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

Dokumento lygio metaduomenys

Šis 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 lygio metaduomenys

Kiekvienas Page objektas turi:

SavybėTipasAprašymas
page.Author`strNone`
page.CreationTime`datetimeNone`
page.LastModifiedTime`datetimeNone`
page.Level`intNone`

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 puslapis
  • 1: pirmo lygio subpuslapis (vienas įtraukimas)
  • 2: antro lygio subpuslapis (du įtraukimai)

Pastabos

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

Žr. taip pat

 Lietuvių