Cara Membaca Metadata Halaman dari OneNote dalam Python
OneNote .one fail menyimpan metadata yang anda boleh baca tanpa mengurai DOM dokumen penuh. Pada dokumen tahap, Document.FileFormat memberitahu anda varian OneNote mana yang digunakan oleh fail. Pada halaman tahap, setiap Page membawa pengarang, cap masa penciptaan, cap masa pengubahsuaian terakhir, dan tahap hierarki. Aspose.Note FOSS untuk Python mendedahkan ini melalui Document dan Page kelas.
Prasyarat
pip install aspose-noteMetadata Peringkat Dokumen
Objek Document objek mendedahkan satu sifat metadata:
| Sifat | Jenis | Keterangan |
|---|---|---|
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 Peringkat Halaman
Setiap Page objek membawa:
| Sifat | Jenis | 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")Mengesan Sub-Halaman
Dalam OneNote, sub-halaman ditandakan secara visual di bawah halaman induknya. page.Level sifat ini mencerminkan susunan 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 Tahap:
0: halaman peringkat atas1: sub-halaman peringkat pertama (satu inden)2: sub-halaman peringkat kedua (dua inden)
Nota
- Semua cap masa (
CreationTime,LastModifiedTime) adalahdatetimeobjek dalam UTC apabila ada. page.LevelmengembalikanNoneuntuk halaman di mana aras tidak disimpan dalam format binari. AnggapNonesebagai0menggunakanpage.Level or 0.