כיצד לקרוא מטא‑נתוני דף מ‑OneNote בפייתון
OneNote .one קבצים מאחסנים מטא‑נתונים שניתן לקרוא ללא ניתוח של ה‑DOM המלא של המסמך. ברמת document, Document.FileFormat מודיע לך איזו גרסת OneNote הקובץ משתמש. ברמת page, כל Page נושא את המחבר, חותמת זמן יצירה, חותמת זמן שינוי אחרונה, ורמת ההיררכיה. Aspose.Note FOSS for 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}")Metadata ברמת העמוד
כל אובייקט Page מכיל:
| מאפיין | סוג | תיאור |
|---|---|---|
page.Author | str | None | שם התצוגה של המשתמש שיצר או בעל הדף. |
page.CreationTime | datetime | None | מתי נוצר הדף. מחזיר אובייקט Python datetime ב‑UTC. |
page.LastModifiedTime | datetime | None | מתי הדף שונה לאחרונה. |
page.Level | int | None | רמת ההזחה של תת‑דף. 0 = דף ברמה העליונה, 1 = תת‑דף ברמה הראשונה, 2 = ברמה השנייה, וכו׳. |
שלב 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.