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-noteDokumenta līmeņa metadati
Objekts Document sniedz vienu metadatu īpašību:
| Īpašība | Tips | Apraksts |
|---|---|---|
doc.FileFormat | FileFormat | OneNote 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:
| Property | Type | Description |
|---|---|---|
page.Author | str | None | Parādāmais lietotāja vārds, kurš izveidoja vai ir lapas īpašnieks. |
page.CreationTime | datetime | None | Kad lapa tika izveidota. Atgriež Python datetime objektu UTC. |
page.LastModifiedTime | datetime | None | Kad lapa pēdējoreiz tika modificēta. |
page.Level | int | None | Apakš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 lapa1: 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) irdatetimeobjekti UTC, ja tie ir pieejami. page.LevelatgriežNonelapām, kuras līmenis netika saglabāts binārajā formātā. UzskatietNonepar0, izmantojotpage.Level or 0.