Hvordan lese side‑metadata fra OneNote i Python

Hvordan lese side‑metadata fra OneNote i Python

OneNote .one‑filer lagrer metadata du kan lese uten å parse hele dokument‑DOM‑en. På document‑nivå forteller Document.FileFormat deg hvilken OneNote‑variant filen bruker. På page‑nivå inneholder hver Page forfatter, opprettelsestidsstempel, sist‑endret tidsstempel og hierarkinivå. Aspose.Note FOSS for Python eksponerer disse gjennom Document‑ og Page‑klassene.


Forutsetninger

pip install aspose-note

Metadata på dokumentnivå

Document‑objektet eksponerer én metadata‑egenskap:

EgenskapTypeBeskrivelse
doc.FileFormatFileFormatOneNote‑varianten: FileFormat.OneNote2010, FileFormat.OneNoteOnline eller FileFormat.Unknown.
from aspose.note import Document

doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")

Metadata på sidenivå

Hvert Page‑objekt inneholder:

PropertyTypeDescription
page.Authorstr | NoneVisningsnavnet til brukeren som opprettet eller eier siden.
page.CreationTimedatetime | NoneNår siden ble opprettet. Returnerer et Python datetime-objekt i UTC.
page.LastModifiedTimedatetime | NoneNår siden sist ble endret.
page.Levelint | NoneInnrykknivå for underside. 0 = toppnivåside, 1 = første nivå underside, 2 = andre nivå, osv.

Trinn 1: Les metadata for hver side

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}")

Fullstendig eksempel: Metadatrapport

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")

Oppdage undersider

I OneNote er undersider visuelt innrykket under sin overordnede side. Egenskapen page.Level gjenspeiler denne innrykkingen:

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)'}")

Nivåverdier:

  • 0: toppnivåside
  • 1: første nivå underside (én innrykk)
  • 2: andre nivå underside (to innrykk)

Notater

  • Alle tidsstempler (CreationTime, LastModifiedTime) er datetime‑objekter i UTC når de er tilstede.
  • page.Level returnerer None for sider hvor nivået ikke ble lagret i det binære formatet. Behandle None som 0 ved bruk av page.Level or 0.

Se også

 Norsk