PST (Personal Storage Table) är ett lagringsfilformat som används av olika Microsoft-program. PST-filer kan lagra information om meddelanden, kontakter, kalendrar, händelser, etc. Det används av populära Microsoft-program som MS Outlook, Exchange och Windows Messaging. I vissa fall kan du behöva analysera en PST-fil och extrahera data från den programmatiskt. För att uppnå det visar den här artikeln hur man analyserar PST-filer från Python-applikationerna.
- Python-bibliotek för att analysera PST-filer
- Analysera en PST-fil i Python
- Extrahera meddelanden från en PST-fil
- Extrahera kontakter från en PST-fil
Python-bibliotek för att analysera PST-filer
För att analysera PST-filer kommer vi att använda Aspose.Email for Python. Det är ett kraftfullt Python-bibliotek som låter dig implementera funktionsrika e-postklienter sömlöst. Dessutom låter den dig arbeta med populära e-post- och lagringsformat. Du kan installera biblioteket från PyPI med följande kommando.
> pip install Aspose.Email-for-Python-via-NET
Analysera en PST-fil i Python
Följande är stegen för att analysera en PST-fil och extrahera dess information i Python.
- Ladda PST-filen med metoden PersonalStorage.fromfile().
- Hämta mappsamlingen i PST med metoden PersonalStorage.rootfolder.getsubfolders().
- Hämta information om mapparna som namn, antal objekt osv.
Följande kodexempel visar hur man analyserar en PST-fil och hämtar mapparinformation.
from aspose.email.storage.pst import PersonalStorage
# Ladda PST-fil
personalStorage = PersonalStorage.from_file("Outlook.pst")
# Hämta mappars samling
folderInfoCollection = personalStorage.root_folder.get_sub_folders()
# Extrahera information om mappar
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))
Extrahera meddelanden från en PST-fil i Python
Meddelanden är de viktigaste enheterna som lagras i PST-filer av Microsoft-program som MS Outlook. Så låt oss se hur man extraherar meddelanden från en PST-fil i Python.
- Ladda PST-filen med metoden PersonalStorage.fromfile().
- Hämta referensen till den önskade mappen i ett objekt med metoden PersonalStorage.rootfolder.getsubfolder().
- Hämta meddelandesamling med metoden getcontents().
- Gå igenom meddelandena i samlingen och läs varje meddelandes fält.
Följande kodexempel visar hur man extraherar meddelanden från en PST-fil i Python.
from aspose.email.storage.pst import PersonalStorage
# Ladda PST-fil
sourcePst = PersonalStorage.from_file("Outlook.pst")
# Välj önskad mapp
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")
# Hämta innehåll i mappen
messageInfoCollection = sourceFolder.get_contents()
# Gå igenom meddelanden i mappen
for messageInfo in messageInfoCollection:
print ("Subject: " + messageInfo.subject)
print("To: " + messageInfo.display_to)
Extrahera kontakter från en PST-fil i Python
I vissa fall kan du behöva extrahera kontakternas information lagrad i en PST-fil. Följande steg visar hur du kommer åt kontakterna i en PST-fil i Python.
- Ladda PST-filen med metoden PersonalStorage.fromfile().
- Få referens till kontaktmappen med metoden getpredefinedfolder(StandardIpmFolder.CONTACTS).
- Få samling av kontakter med metoden getcontents().
- Gå igenom samlingen och läs varje kontakt eller spara den.
Följande kodexempel visar hur man extraherar kontakter från en PST-fil i Python.
from aspose.email.storage.pst import PersonalStorage, StandardIpmFolder
from aspose.email.mapi import ContactSaveFormat
# Ladda PST-fil
pst = PersonalStorage.from_file("SampleContacts_out.pst")
# Välj kontaktmapp
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)
# Skaffa kontakter
contactCollection = folderInfo.get_contents()
# Gå igenom kontaktinsamlingen
for messageInfo in contactCollection:
# Få kontaktinformationen
mapi = pst.extract_message(messageInfo)
contact = mapi.to_mapi_message_item()
# Visa en del innehåll på skärmen
print("Name: " + contact.name_info.display_name)
# Spara på skiva i MSG-format
if contact.name_info.display_name is not None:
# Spara kontakt
contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)
Skaffa en gratis API-licens
Du kan prova Aspose.Email för Python gratis genom att skaffa en tillfällig licens.
Slutsats
I den här artikeln har du lärt dig hur du analyserar PST-filer i Python. Dessutom har du sett hur man extraherar kontakter och meddelanden från en PST-fil programmatiskt i Python. Dessutom kan du utforska mer om Aspose.Email med hjälp av dokumentation. Du kan också dela dina frågor eller frågor på vårt forum.