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

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

OneNote .one faili saglabā metadatus, kurus var izlasīt, nepārbaudot pilnu dokumenta DOM. Uz dokuments līmenī Document.FileFormat norāda, kuru OneNote variantu fails izmanto. Uz lapa līmenī katrs Page satur autoru, izveides laika zīmogu, pēdējās izmaiņas laika zīmogu un hierarhijas līmeni. Aspose.Note FOSS for Python atklāj tos caur Document un Page klasēm.


Priekšnosacījumi

pip install aspose-note

Dokumenta līmeņa metadati

Objekts Document sniedz 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:

PropertyTypeDescription
page.Authorstr | NoneParādāmais lietotāja vārds, kurš izveidoja vai ir lapas īpašnieks.
page.CreationTimedatetime | NoneKad lapa tika izveidota. Atgriež Python datetime objektu UTC.
page.LastModifiedTimedatetime | NoneKad lapa pēdējoreiz tika modificēta.
page.Levelint | NoneApakšlapas atkāpšanas līmenis. 0 = augstākā līmeņa lapa, 1 = pirmā līmeņa apakšlapa, 2 = otrā līmeņa, utt.

Solis 1: 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 savas vecāku lapas. Īpašība page.Level 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)'}")

Level values:

  • 0: augstākā līmeņa lapa
  • 1: pirmais līmeņa apakšlapa (viena atkāpe)
  • 2: otrais līmeņa apakšlapa (divas atkāpes)

Piezīmes

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

Skatīt arī

 Latviešu