Python'da OneNote'dan Sayfa Meta Verilerini Okuma

Python'da OneNote'dan Sayfa Meta Verilerini Okuma

OneNote .one dosyaları, tam belge DOM’unu ayrıştırmadan okuyabileceğiniz meta verileri saklar. belge seviyesinde, Document.FileFormat dosyanın hangi OneNote varyantını kullandığını gösterir. sayfa seviyesinde, her Page yazar, oluşturulma zaman damgası, son değiştirilme zaman damgası ve hiyerarşi seviyesini taşır. Aspose.Note FOSS for Python, bunları Document ve Page sınıfları aracılığıyla sunar.


Önkoşullar

pip install aspose-note

Belge Düzeyi Üst Verileri

Document nesnesi bir meta veri özelliği sunar:

ÖzellikTürAçıklama
doc.FileFormatFileFormatOneNote varyantı: FileFormat.OneNote2010, FileFormat.OneNoteOnline veya FileFormat.Unknown.
from aspose.note import Document

doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")

Sayfa Düzeyi Meta Verileri

Her Page nesnesi şunları taşır:

ÖzellikTürAçıklama
page.Authorstr | NoneSayfayı oluşturan veya sahip olan kullanıcının görüntülenen adı.
page.CreationTimedatetime | NoneSayfanın oluşturulduğu zaman. UTC’de bir Python datetime nesnesi döndürür.
page.LastModifiedTimedatetime | NoneSayfanın en son değiştirildiği zaman.
page.Levelint | NoneAlt sayfa girinti seviyesi. 0 = üst düzey sayfa, 1 = birinci düzey alt sayfa, 2 = ikinci düzey, vb.

Adım 1: Her Sayfa İçin Meta Verileri Oku

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}")

Tam Örnek: Meta Veri Raporu

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")

Alt Sayfaları Algılama

OneNote’ta, alt sayfalar görsel olarak üst sayfalarının altında girintili olarak gösterilir. page.Level özelliği bu iç içeliği yansıtır:

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)'}")

Seviye değerleri:

  • 0: üst düzey sayfa
  • 1: birinci düzey alt sayfa (bir girinti)
  • 2: ikinci düzey alt sayfa (iki girinti)

Notlar

  • Tüm zaman damgaları (CreationTime, LastModifiedTime) mevcut olduğunda UTC’de datetime nesneleridir.
  • page.Level, seviyenin ikili formatta depolanmadığı sayfalar için None döndürür. None‘i 0 olarak, page.Level or 0 kullanarak ele alın.

İlgili

 Türkçe