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-noteDokumenta līmeņa metadati
Šis Document objekts atklāj 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:
| Īpašība | Tips | Apraksts |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
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 lapa1: 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) irdatetimeobjektus UTC, ja tie ir pieejami. page.LevelatgriežNonelapām, kuras līmenis netika saglabāts binārajā formātā. ApstrādājietNonekā0izmantojotpage.Level or 0.