Cara Membaca Metadata Halaman dari OneNote di Python
OneNote .one file menyimpan metadata yang dapat Anda baca tanpa mengurai seluruh DOM dokumen. Pada dokumen tingkat, Document.FileFormat memberitahu Anda varian OneNote mana yang digunakan file. Pada halaman tingkat, setiap Page memuat penulis, cap waktu pembuatan, cap waktu terakhir diubah, dan tingkat hierarki. Aspose.Note FOSS untuk Python mengekspos ini melalui Document dan Page kelas.
Prasyarat
pip install aspose-noteMetadata Tingkat Dokumen
Objek Document mengekspos satu properti metadata:
| Properti | Tipe | Deskripsi |
|---|---|---|
doc.FileFormat | FileFormat | Varian OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, atau FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Metadata Tingkat Halaman
Setiap Page objek membawa:
| Properti | Tipe | Deskripsi |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
Langkah 1: Baca Metadata untuk Setiap Halaman
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}")Contoh Lengkap: Laporan Metadata
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")Mendeteksi Sub-Halaman
Di OneNote, sub-halaman secara visual diindentasi di bawah halaman induknya. page.Level properti mencerminkan penataan ini:
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)'}")Nilai level:
0: halaman tingkat atas1: sub-halaman tingkat pertama (satu indent)2: sub-halaman tingkat kedua (dua indent)
Catatan
- Semua cap waktu (
CreationTime,LastModifiedTime) adalahdatetimeobjek dalam UTC bila ada. page.LevelmengembalikanNoneuntuk halaman di mana level tidak disimpan dalam format biner. PerlakukanNonesebagai0menggunakanpage.Level or 0.