Jak číst metadatá stránek z OneNote v Pythonu

Jak číst metadatá stránek z OneNote v Pythonu

OneNote .one soubory ukládají metadata, které můžete číst bez analýzy celého dokumentu DOM. Na dokument úroveň, Document.FileFormat řekne vám, který variant OneNote soubor používá. Na stránce stránka úroveň, každá Page obsahuje autora, časovou známku vytvoření, poslední změnu a hierarchickou úroveň. Aspose.Note FOSS pro Python je vystavuje prostřednictvím Document a) Page Vyučování.


Předpoklady

pip install aspose-note

Metadata na úrovni dokumentu

Úřad pro bezpečnost a ochranu zdraví Document objekt odhalí jednu vlastnost metadát:

VlastnictvíTyp:Popis:
doc.FileFormatFileFormatVarianta OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline,nebo: FileFormat.Unknown.
from aspose.note import Document

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

Metadata na úrovni stránky

Každá. Page objekt nese:

VlastnictvíTyp:Popis:
page.Author`strNone`
page.CreationTime`datetimeNone`
page.LastModifiedTime`datetimeNone`
page.Level`intNone`

Krok 1: přečtěte si metadata pro každou stránku

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

Kompletní příklad: Zpráva o metadatech

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

Zjistit podstránky

V OneNotu jsou podstránky vizuálně odtaženy pod jejich základní stránkou. page.Level vlastnost odráží toto hnízdění:

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

Hodnoty úrovně:

  • 0: stránka nejvyššího stupně
  • 1: podstránka prvního stupně (jedna odrážka)
  • 2: podstránka druhého stupně (dvě odrážky)

Poznámky

  • Všechny časové razítka (CreationTime, LastModifiedTime) jsou: datetime objekty v UTC, pokud jsou přítomny.
  • page.Level výnosy None pro stránky, kde úroveň nebyla uložena v binárním formátu. None jako: 0 Použití: page.Level or 0.

Viz také:

 Čeština