Jak číst metadata stránky z OneNote v Python
OneNote .one soubory ukládají metadata, která můžete číst bez parsování celého DOM dokumentu. Na dokumentu úrovni, Document.FileFormat říká vám, kterou variantu OneNote soubor používá. Na stránce úrovni, každý Page obsahuje autora, časové razítko vytvoření, časové razítko poslední úpravy a úroveň hierarchie. Aspose.Note FOSS pro Python to zpřístupňuje přes Document a Page třídy.
Požadavky
pip install aspose-noteMetadata na úrovni dokumentu
Objekt Document vystavuje jednu vlastnost metadata:
| Vlastnost | Typ | Popis |
|---|---|---|
doc.FileFormat | FileFormat | Varianta OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, nebo FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Metadata na úrovni stránky
Každý Page objekt nese:
| Vlastnost | Typ | Popis |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
Krok 1: Přečíst metadata pro každou stránku
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}")Kompletní příklad: Zpráva o metadatech
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")Detekce podstránek
V OneNote jsou podstránky vizuálně odsazeny pod jejich nadřazenou stránkou. The page.Level vlastnost odráží toto vnoření:
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)'}")Hodnoty úrovně:
0: stránka nejvyšší úrovně1: podstránka první úrovně (jedno odsazení)2: podstránka druhé úrovně (dvě odsazení)
Poznámky
- Všechny časové značky (
CreationTime,LastModifiedTime) jsoudatetimeobjekty v UTC, pokud jsou přítomny. page.LevelvracíNonepro stránky, kde úroveň nebyla uložena v binárním formátu. ZpracujteNonejako0používánípage.Level or 0.