Πώς να διαβάσετε τα μεταδεδομένα σελίδας από το OneNote στο Python
OneNote .one Τα αρχεία αποθηκεύουν μεταδεδομένα που μπορείτε να διαβάσετε χωρίς να αναλύσετε το πλήρες DOM του εγγράφου. Στο έγγραφο επίπεδο, Document.FileFormat σας λέει ποια παραλλαγή του OneNote χρησιμοποιεί το αρχείο. Στο σελίδα επίπεδο, κάθε Page περιέχει τον συγγραφέα, τη χρονική σήμανση δημιουργίας, τη χρονική σήμανση τελευταίας τροποποίησης και το επίπεδο ιεραρχίας. Aspose.Note FOSS για 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}")Μεταδεδομένα σε Επίπεδο Σελίδας
Κάθε Page το αντικείμενο περιέχει:
| Ιδιότητα | Τύπος | Περιγραφή |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
Βήμα 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.