כיצד לקרוא מטא‑נתוני דף מ‑OneNote בפייתון

כיצד לקרוא מטא‑נתוני דף מ‑OneNote בפייתון

OneNote .one קבצים מאחסנים מטא‑נתונים שניתן לקרוא ללא ניתוח של ה‑DOM המלא של המסמך. ברמת document, Document.FileFormat מודיע לך איזו גרסת OneNote הקובץ משתמש. ברמת page, כל Page נושא את המחבר, חותמת זמן יצירה, חותמת זמן שינוי אחרונה, ורמת ההיררכיה. Aspose.Note FOSS for Python חושף את אלה דרך המחלקות Document ו‑Page.


דרישות מוקדמות

pip install aspose-note

מטא‑נתונים ברמת המסמך

העצם Document חושף מאפיין מטא‑נתונים אחד:

מאפייןסוגתיאור
doc.FileFormatFileFormatהגרסה של 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.Authorstr | Noneשם התצוגה של המשתמש שיצר או בעל הדף.
page.CreationTimedatetime | Noneמתי נוצר הדף. מחזיר אובייקט Python datetime ב‑UTC.
page.LastModifiedTimedatetime | Noneמתי הדף שונה לאחרונה.
page.Levelint | 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.

ראה גם

 עברית