PST (ตารางที่เก็บข้อมูลส่วนตัว) เป็นรูปแบบไฟล์ที่เก็บข้อมูลที่ใช้โดยโปรแกรมต่างๆ ของ Microsoft ไฟล์ PST สามารถเก็บข้อมูลข้อความ ผู้ติดต่อ ปฏิทิน กิจกรรม ฯลฯ มันถูกใช้งานโดยซอฟต์แวร์ยอดนิยมของ Microsoft เช่น MS Outlook, Exchange และ Windows Messaging ในบางกรณี คุณอาจต้องแยกวิเคราะห์ไฟล์ PST และแยกข้อมูลจากไฟล์โดยใช้โปรแกรม บทความนี้จึงแสดงวิธีแยกไฟล์ PST จากภายในแอปพลิเคชัน Python
- Python Library เพื่อแยกวิเคราะห์ไฟล์ PST
- แยกวิเคราะห์ไฟล์ PST ใน Python
- แยกข้อความจากไฟล์ PST
- แยกผู้ติดต่อออกจากไฟล์ PST
Python Library เพื่อแยกวิเคราะห์ไฟล์ PST
ในการแยกวิเคราะห์ไฟล์ PST เราจะใช้ Aspose.Email for Python เป็นไลบรารี Python อันทรงพลังที่ให้คุณใช้งานไคลเอนต์อีเมลที่มีคุณสมบัติหลากหลายได้อย่างราบรื่น นอกจากนี้ยังช่วยให้คุณทำงานกับอีเมลและรูปแบบพื้นที่เก็บข้อมูลยอดนิยม คุณสามารถติดตั้งไลบรารีได้จาก PyPI โดยใช้คำสั่งต่อไปนี้
> pip install Aspose.Email-for-Python-via-NET
แยกวิเคราะห์ไฟล์ PST ใน Python
ต่อไปนี้เป็นขั้นตอนในการแยกวิเคราะห์ไฟล์ PST และแยกข้อมูลใน Python
- โหลดไฟล์ PST โดยใช้วิธี PersonalStorage.fromfile()
- รับคอลเลกชันโฟลเดอร์ใน PST โดยใช้วิธี PersonalStorage.rootfolder.getsubfolders()
- ดึงข้อมูลของโฟลเดอร์ เช่น ชื่อ จำนวนรายการ เป็นต้น
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกวิเคราะห์ไฟล์ PST และดึงข้อมูลของโฟลเดอร์
from aspose.email import PersonalStorage
# โหลดไฟล์ PST
personalStorage = PersonalStorage.from_file("Outlook.pst")
# รับคอลเลกชันของโฟลเดอร์
folderInfoCollection = personalStorage.root_folder.get_sub_folders()
# แยกข้อมูลของโฟลเดอร์
for folderInfo in folderInfoCollection:
print("Folder: " + folderInfo.display_name)
print("Total Items: " + str(folderInfo.content_count))
print("Total Unread Items: " + str(folderInfo.content_unread_count))
แยกข้อความจากไฟล์ PST ใน Python
ข้อความเป็นเอนทิตีหลักที่จัดเก็บไว้ในไฟล์ PST โดยโปรแกรม Microsoft เช่น MS Outlook มาดูวิธีแยกข้อความจากไฟล์ PST ใน Python
- โหลดไฟล์ PST โดยใช้วิธี PersonalStorage.fromfile()
- รับการอ้างอิงของโฟลเดอร์ที่ต้องการในวัตถุโดยใช้เมธอด PersonalStorage.rootfolder.getsubfolder()
- รับการรวบรวมข้อความโดยใช้เมธอด getcontent()
- วนซ้ำข้อความในคอลเลกชั่นและอ่านฟิลด์ของแต่ละข้อความ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อความจากไฟล์ PST ใน Python
from aspose.email import PersonalStorage
# โหลดไฟล์ PST
sourcePst = PersonalStorage.from_file("Outlook.pst")
# เลือกโฟลเดอร์ที่ต้องการ
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")
# รับเนื้อหาในโฟลเดอร์
messageInfoCollection = sourceFolder.get_contents()
# วนซ้ำข้อความในโฟลเดอร์
for messageInfo in messageInfoCollection:
print ("Subject: " + messageInfo.subject)
print("To: " + messageInfo.display_to)
แยกผู้ติดต่อออกจากไฟล์ PST ใน Python
ในบางกรณี คุณอาจต้องแยกข้อมูลผู้ติดต่อที่จัดเก็บไว้ในไฟล์ PST ขั้นตอนต่อไปนี้แสดงวิธีการเข้าถึงผู้ติดต่อในไฟล์ PST ใน Python
- โหลดไฟล์ PST โดยใช้วิธี PersonalStorage.fromfile()
- รับการอ้างอิงของโฟลเดอร์ผู้ติดต่อโดยใช้เมธอด getpredefinedfolder(StandardIpmFolder.CONTACTS)
- รับการรวบรวมผู้ติดต่อโดยใช้เมธอด getcontent()
- วนซ้ำคอลเลกชันและอ่านผู้ติดต่อแต่ละรายหรือบันทึก
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกผู้ติดต่อจากไฟล์ PST ใน Python
from aspose.email import PersonalStorage, StandardIpmFolder, ContactSaveFormat
# โหลดไฟล์ PST
pst = PersonalStorage.from_file("SampleContacts_out.pst")
# เลือกโฟลเดอร์ผู้ติดต่อ
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)
# รับรายชื่อ
contactCollection = folderInfo.get_contents()
# วนซ้ำคอลเลกชันที่ติดต่อ
for messageInfo in contactCollection:
# รับข้อมูลการติดต่อ
mapi = pst.extract_message(messageInfo)
contact = mapi.to_mapi_message_item()
# แสดงเนื้อหาบางส่วนบนหน้าจอ
print("Name: " + contact.name_info.display_name)
# บันทึกลงแผ่นดิสก์ในรูปแบบผงชูรส
if contact.name_info.display_name is not None:
# บันทึกผู้ติดต่อ
contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)
รับใบอนุญาต API ฟรี
คุณสามารถลองใช้ Aspose.Email for Python ได้ฟรีโดย ขอรับใบอนุญาตชั่วคราว
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีแยกวิเคราะห์ไฟล์ PST ใน Python นอกจากนี้ คุณได้เห็นวิธีดึงข้อมูลผู้ติดต่อและข้อความจากไฟล์ PST โดยทางโปรแกรมใน Python นอกจากนี้ คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Aspose.Email โดยใช้ เอกสารประกอบ นอกจากนี้ คุณสามารถแบ่งปันคำถามหรือข้อสงสัยของคุณบน ฟอรัม ของเรา