Python में OneNote से पेज मेटाडाटा कैसे पढ़ें
OneNote .one फ़ाइलें मेटाडेटा संग्रहीत करती हैं जिसे आप पूर्ण दस्तावेज़ DOM को पार्स किए बिना पढ़ सकते हैं। At the document level, Document.FileFormat आपको बताता है कि फ़ाइल कौन सा OneNote वैरिएंट उपयोग करती है। At the page level, प्रत्येक Page लेखक, निर्माण टाइमस्टैम्प, अंतिम‑परिवर्तित टाइमस्टैम्प, और पदानुक्रम स्तर को ले जाता है। Aspose.Note FOSS for 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 ऑब्जेक्ट में होता है:
| Property | Type | Description |
|---|---|---|
page.Author | str | None | पृष्ठ बनाने वाले या उसके मालिक उपयोगकर्ता का प्रदर्शित नाम। |
page.CreationTime | datetime | None | पृष्ठ कब बनाया गया था। UTC में एक Python datetime ऑब्जेक्ट लौटाता है। |
page.LastModifiedTime | datetime | None | पृष्ठ को अंतिम बार कब संशोधित किया गया था। |
page.Level | int | None | उप-पृष्ठ इंडेंट स्तर। 0 = शीर्ष-स्तर पृष्ठ, 1 = प्रथम-स्तर उप-पृष्ठ, 2 = द्वितीय-स्तर, आदि। |
चरण 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) उपस्थित होने पर UTC मेंdatetimeऑब्जेक्ट होते हैं। page.Levelउन पृष्ठों के लिएNoneलौटाता है जहाँ स्तर बाइनरी फ़ॉर्मेट में संग्रहीत नहीं था।Noneको0के रूप मेंpage.Level or 0का उपयोग करके मानें।