Come leggere i metadati della pagina da OneNote in Python

Come leggere i metadati della pagina da OneNote in Python

OneNote .one i file memorizzano metadati che puoi leggere senza analizzare l’intero DOM del documento. Al documento livello, Document.FileFormat ti indica quale variante di OneNote utilizza il file. Al pagina livello, ciascuno Page contiene l’autore, il timestamp di creazione, il timestamp di ultima modifica e il livello gerarchico. Aspose.Note FOSS per Python espone questi attraverso il Document e Page classi.


Prerequisiti

pip install aspose-note

Metadati a livello di documento

Il Document oggetto espone una proprietà di metadati:

ProprietàTipoDescrizione
doc.FileFormatFileFormatLa variante di OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, o FileFormat.Unknown.
from aspose.note import Document

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

Metadati a livello di pagina

Ogni Page l’oggetto contiene:

ProprietàTipoDescrizione
page.Author`strNone`
page.CreationTime`datetimeNone`
page.LastModifiedTime`datetimeNone`
page.Level`intNone`

Passo 1: Leggi i metadati per ogni pagina

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

Esempio completo: Rapporto sui metadati

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

Rilevamento delle sotto-pagine

In OneNote, le sotto-pagine sono visualmente rientrate sotto la loro pagina principale. Il page.Level proprietà riflette questa nidificazione:

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

Valori di livello:

  • 0: pagina di livello superiore
  • 1: sotto-pagina di primo livello (un rientro)
  • 2: sotto-pagina di secondo livello (due rientri)

Note

  • Tutti i timestamp (CreationTime, LastModifiedTime) sono datetime oggetti in UTC quando presenti.
  • page.Level restituisce None per le pagine in cui il livello non è stato memorizzato nel formato binario. Tratta None come 0 usando page.Level or 0.

Vedi anche

 Italiano