Cách Đọc Siêu Dữ Liệu Trang từ OneNote trong Python
OneNote .one files lưu trữ siêu dữ liệu mà bạn có thể đọc mà không cần phân tích toàn bộ DOM của tài liệu. Tại tài liệu cấp độ, Document.FileFormat cho bạn biết OneNote biến thể nào mà file sử dụng. Tại trang cấp độ, mỗi Page có thông tin tác giả, thời gian tạo, thời gian sửa đổi lần cuối, và cấp độ phân cấp. Aspose.Note FOSS cho Python công khai những thông tin này qua Document và Page các lớp.
Yêu cầu trước
pip install aspose-noteSiêu Dữ Liệu Cấp Độ Tài Liệu
Cái Document đối tượng cung cấp một thuộc tính siêu dữ liệu:
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
doc.FileFormat | FileFormat | Biến thể OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, hoặc FileFormat.Unknown. |
from aspose.note import Document
doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")Siêu Dữ Liệu Cấp Độ Trang
Mỗi Page đối tượng mang:
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
page.Author | `str | None` |
page.CreationTime | `datetime | None` |
page.LastModifiedTime | `datetime | None` |
page.Level | `int | None` |
Bước 1: Đọc Siêu Dữ Liệu cho Mỗi Trang
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}")Ví Dụ Hoàn Chỉnh: Báo Cáo Siêu Dữ Liệu
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")Phát Hiện Các Trang Con
Trong OneNote, các trang con được thụt lề trực quan dưới trang cha của chúng. The page.Level thuộc tính phản ánh cấu trúc lồng nhau này:
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)'}")Giá trị cấp độ:
0: trang cấp cao nhất1:trang con cấp một (căn lề một)2:trang con cấp hai (hai lần căn lề)
Ghi chú
- Tất cả các dấu thời gian (
CreationTime,LastModifiedTime) làdatetimecác đối tượng ở UTC khi có. page.Leveltrả vềNonecho các trang mà mức độ không được lưu trong định dạng nhị phân. Xử lýNonenhư0sử dụngpage.Level or 0.