Jak číst metadatá stránek z OneNote v Pythonu
OneNote .one soubory ukládají metadata, které můžete číst bez analýzy celého dokumentu DOM. Na dokument úroveň, Document.FileFormat řekne vám, který variant OneNote soubor používá. Na stránce stránka úroveň, každá Page obsahuje autora, časovou známku vytvoření, poslední změnu a hierarchickou úroveň. Aspose.Note FOSS pro Python je vystavuje prostřednictvím Document a) Page Vyučování.
Předpoklady
pip install aspose-noteMetadata na úrovni dokumentu
Úřad pro bezpečnost a ochranu zdraví Document objekt odhalí jednu vlastnost metadát:
| Vlastnictví | 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:
| Vlastnictví | Typ: | Popis: |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
Krok 1: přečtěte si 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")Zjistit podstránky
V OneNotu jsou podstránky vizuálně odtaženy pod jejich základní stránkou. page.Level vlastnost odráží toto hnízdění:
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ššího stupně1: podstránka prvního stupně (jedna odrážka)2: podstránka druhého stupně (dvě odrážky)
Poznámky
- Všechny časové razítka (
CreationTime,LastModifiedTime) jsou:datetimeobjekty v UTC, pokud jsou přítomny. page.LevelvýnosyNonepro stránky, kde úroveň nebyla uložena v binárním formátu.Nonejako:0Použití:page.Level or 0.