Как да прочетете метаданни на страница от OneNote в Python
OneNote .one файловете съхраняват метаданни, които можете да прочетете без да парсирате пълния DOM на документа. На документ ниво, Document.FileFormat казва ви коя версия на OneNote използва файлът. На страница ниво, всяка Page съдържа автора, времевия маркер за създаване, времевия маркер за последна промяна и нивото на йерархията. Aspose.Note FOSS за Python излага тези данни чрез Document и Page класове.
Предварителни изисквания
pip install aspose-noteМетаданни на ниво документ
Това Document обектът разкрива едно свойство за метаданни:
| Свойство | Тип | Описание |
|---|---|---|
doc.FileFormat | FileFormat | Вариантът OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, или FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Метаданни на ниво страница
Всеки Page обектът съдържа:
| Свойство | Тип | Описание |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
Стъпка 1: Прочетете метаданните за всяка страница
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}")Пълен пример: Отчет за метаданни
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")Откриване на подпраници
В OneNote подстраниците са визуално отстъпени под родителската страница. Свойството page.Level отразява това вложение:
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)'}")Стойности на нивото:
0: главна страница1: подстраница от първо ниво (един отстъп)2: подстраница от второ ниво (два отстъпа)
Бележки
- Всички времеви отметки (
CreationTime,LastModifiedTime) саdatetimeобекти в UTC, когато са налични. page.LevelвръщаNoneза страници, при които нивото не е съхранено в бинарния формат. ТретирайтеNoneкато0използвайкиpage.Level or 0.