Hogyan olvassuk ki az oldal metaadatait a OneNote-ból Pythonban
Az OneNote .one fájlok metaadatokat tárolnak, amelyeket a teljes dokumentum DOM elemzése nélkül is beolvashatsz. A document szinten a Document.FileFormat megmondja, hogy a fájl melyik OneNote változatot használja. A page szinten minden Page tartalmazza a szerzőt, a létrehozás időbélyegét, az utolsó módosítás időbélyegét és a hierarchiai szintet. Az Aspose.Note FOSS for Python ezeket a Document és Page osztályokon keresztül teszi elérhetővé.
Előfeltételek
pip install aspose-noteDokumentumszintű metaadatok
A Document objektum egy metaadat‑tulajdonságot tesz elérhetővé:
| Tulajdonság | Típus | Leírás |
|---|---|---|
doc.FileFormat | FileFormat | A OneNote változat: FileFormat.OneNote2010, FileFormat.OneNoteOnline, vagy FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Oldalszintű metaadatok
Minden Page objektum tartalmaz:
| Property | Type | Description |
|---|---|---|
page.Author | str | None | A felhasználó megjelenített neve, aki létrehozta vagy a lap tulajdonosa. |
page.CreationTime | datetime | None | A lap létrehozásának időpontja. Egy Python datetime objektumot ad vissza UTC-ben. |
page.LastModifiedTime | datetime | None | A lap legutóbbi módosításának időpontja. |
page.Level | int | None | Aloldal behúzási szintje. 0 = felső szintű lap, 1 = első szintű aloldal, 2 = második szint, stb. |
1. lépés: Olvassa el az összes oldal metaadatait
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}")Teljes példa: Metaadat-jelentés
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")Aloldalak észlelése
A OneNote‑ban az aloldalak vizuálisan behúzva jelennek meg a szülőoldaluk alatt. A page.Level tulajdonság tükrözi ezt a hierarchiát:
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)'}")Szintértékek:
0: felső szintű oldal1: első szintű aloldal (egy behúzás)2: második szintű aloldal (két behúzás)
Megjegyzések
- Minden időbélyeg (
CreationTime,LastModifiedTime)datetimeobjektum UTC-ben, ha jelen van. page.LevelNone-t ad vissza azoknál az oldalaknál, ahol a szint nem volt tárolva a bináris formátumban. KezeljeNone-t0-ként apage.Level or 0használatával.