Kā nolasīt lapas metadatus no OneNote programmā Python

Kā nolasīt lapas metadatus no OneNote programmā Python

OneNote .one faili glabā metadatus, kurus var izlasīt, nepārbaudot pilnu dokumenta DOM. Pie dokuments līmenis, Document.FileFormat norāda, kuru OneNote variantu fails izmanto. Pie lapa līmenī, katrs Page nes autoru, izveides laika zīmogu, pēdējās modificēšanas laika zīmogu un hierarhijas līmeni. Aspose.Note FOSS priekš Python atklāj šos caur Document un Page klases.


Prasības

pip install aspose-note

Dokumenta līmeņa metadati

Šis Document objekts atklāj vienu metadatu īpašību:

ĪpašībaTipsApraksts
doc.FileFormatFileFormatOneNote variants: FileFormat.OneNote2010, FileFormat.OneNoteOnline, vai FileFormat.Unknown.
from aspose.note import Document

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

Lapas līmeņa metadati

Katrs Page objekts satur:

ĪpašībaTipsApraksts
page.Author`strNone`
page.CreationTime`datetimeNone`
page.LastModifiedTime`datetimeNone`
page.Level`intNone`

1. solis: Nolasīt metadatus katrai lapai

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

Pilns piemērs: Metadatu atskaite

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

Apakšlapu noteikšana

OneNote lietotnē apakšlapas tiek vizuāli atkāptas zem to vecāku lapas. Šī page.Level īpašība atspoguļo šo iekļaušanu:

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

Līmeņa vērtības:

  • 0: augstākā līmeņa lapa
  • 1: pirmā līmeņa apakšlapa (viens atkāpums)
  • 2: otrā līmeņa apakšlapa (divi atkāpumi)

Piezīmes

  • Visi laika zīmogi (CreationTime, LastModifiedTime) ir datetime objektus UTC, ja tie ir pieejami.
  • page.Level atgriež None lapām, kuras līmenis netika saglabāts binārajā formātā. Apstrādājiet None0 izmantojot page.Level or 0.

Skatīt arī

 Latviešu