Come leggere i metadati della pagina da OneNote in Python
OneNote .one i file memorizzano metadati che puoi leggere senza analizzare l’intero DOM del documento. Al documento livello, Document.FileFormat ti indica quale variante di OneNote utilizza il file. Al pagina livello, ciascuno Page contiene l’autore, il timestamp di creazione, il timestamp di ultima modifica e il livello gerarchico. Aspose.Note FOSS per Python espone questi attraverso il Document e Page classi.
Prerequisiti
pip install aspose-noteMetadati a livello di documento
Il Document oggetto espone una proprietà di metadati:
| Proprietà | Tipo | Descrizione |
|---|---|---|
doc.FileFormat | FileFormat | La variante di OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, o FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Metadati a livello di pagina
Ogni Page l’oggetto contiene:
| Proprietà | Tipo | Descrizione |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
Passo 1: Leggi i metadati per ogni pagina
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}")Esempio completo: Rapporto sui metadati
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")Rilevamento delle sotto-pagine
In OneNote, le sotto-pagine sono visualmente rientrate sotto la loro pagina principale. Il page.Level proprietà riflette questa nidificazione:
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)'}")Valori di livello:
0: pagina di livello superiore1: sotto-pagina di primo livello (un rientro)2: sotto-pagina di secondo livello (due rientri)
Note
- Tutti i timestamp (
CreationTime,LastModifiedTime) sonodatetimeoggetti in UTC quando presenti. page.LevelrestituisceNoneper le pagine in cui il livello non è stato memorizzato nel formato binario. TrattaNonecome0usandopage.Level or 0.