كيفية قراءة بيانات الصفحات من OneNote في Python

كيفية قراءة بيانات الصفحات من OneNote في Python

OneNote .one يمكن قراءة ملفات التخزين البيانات الميتا دون إدراج الوثيقة الكاملة DOM. الوثيقة مستوى , Document.FileFormat يخبرك أي OneNote تختلف الملف الذي يستخدمه. صفحة مستوى، كل 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}")

صفحة المستوى الميتايدات

كل واحد منهم Page موضوع يحمل:

الممتلكاتنوعوصف
page.Author`strNone`
page.CreationTime`datetimeNone`
page.LastModifiedTime`datetimeNone`
page.Level`intNone`

الخطوة 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.

انظر أيضا

 العربية