Πώς να διαβάσετε τα μεταδεδομένα σελίδας από το OneNote στο Python

Πώς να διαβάσετε τα μεταδεδομένα σελίδας από το OneNote στο Python

OneNote .one Τα αρχεία αποθηκεύουν μεταδεδομένα που μπορείτε να διαβάσετε χωρίς να αναλύσετε το πλήρες DOM του εγγράφου. Στο έγγραφο επίπεδο, Document.FileFormat σας λέει ποια παραλλαγή του OneNote χρησιμοποιεί το αρχείο. Στο σελίδα επίπεδο, κάθε Page περιέχει τον συγγραφέα, τη χρονική σήμανση δημιουργίας, τη χρονική σήμανση τελευταίας τροποποίησης και το επίπεδο ιεραρχίας. Aspose.Note FOSS για 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.

Δείτε επίσης

 Ελληνικά