PST (Personal Storage Table) ist ein Speicherdateiformat, das von verschiedenen Microsoft-Programmen verwendet wird. PST-Dateien können Daten von Nachrichten, Kontakten, Kalendern, Ereignissen usw. speichern. Sie werden von gängigen Microsoft-Softwareprogrammen wie MS Outlook, Exchange und Windows Messaging verwendet. In bestimmten Fällen müssen Sie möglicherweise eine PST-Datei parsen und Daten daraus programmgesteuert extrahieren. Um dies zu erreichen, zeigt dieser Artikel, wie Sie PST-Dateien aus den Python-Anwendungen heraus parsen.
- Python-Bibliothek zum Analysieren von PST-Dateien
- Analysieren Sie eine PST-Datei in Python
- Nachrichten aus einer PST-Datei extrahieren
- Extrahieren Sie Kontakte aus einer PST-Datei
Python-Bibliothek zum Analysieren von PST-Dateien
Um PST-Dateien zu analysieren, verwenden wir Aspose.Email for Python. Es ist eine leistungsstarke Python-Bibliothek, mit der Sie funktionsreiche E-Mail-Clients nahtlos implementieren können. Darüber hinaus können Sie mit gängigen E-Mail- und Speicherformaten arbeiten. Sie können die Bibliothek von PyPI mit dem folgenden Befehl installieren.
> pip install Aspose.Email-for-Python-via-NET
Analysieren Sie eine PST-Datei in Python
Im Folgenden sind die Schritte zum Analysieren einer PST-Datei und zum Extrahieren ihrer Informationen in Python aufgeführt.
- Laden Sie die PST-Datei mit der Methode PersonalStorage.fromfile().
- Rufen Sie die Ordnersammlung in PST mit der Methode PersonalStorage.rootfolder.getsubfolders() ab.
- Rufen Sie die Informationen der Ordner wie Name, Anzahl der Elemente usw. ab.
Das folgende Codebeispiel zeigt, wie eine PST-Datei analysiert und die Ordnerinformationen abgerufen werden.
from aspose.email import PersonalStorage
# PST-Datei laden
personalStorage = PersonalStorage.from_file("Outlook.pst")
# Holen Sie sich die Sammlung der Ordner
folderInfoCollection = personalStorage.root_folder.get_sub_folders()
# Ordnerinformationen extrahieren
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))
Nachrichten aus einer PST-Datei in Python extrahieren
Nachrichten sind die wichtigsten Einheiten, die von Microsoft-Programmen wie MS Outlook in PST-Dateien gespeichert werden. Sehen wir uns also an, wie Nachrichten aus einer PST-Datei in Python extrahiert werden.
- Laden Sie die PST-Datei mit der Methode PersonalStorage.fromfile().
- Rufen Sie die Referenz des gewünschten Ordners in einem Objekt mit der Methode PersonalStorage.rootfolder.getsubfolder() ab.
- Rufen Sie die Nachrichtensammlung mit der Methode getcontents() ab.
- Durchlaufen Sie die Nachrichten in der Sammlung und lesen Sie die Felder jeder Nachricht.
Das folgende Codebeispiel zeigt, wie Nachrichten aus einer PST-Datei in Python extrahiert werden.
from aspose.email import PersonalStorage
# PST-Datei laden
sourcePst = PersonalStorage.from_file("Outlook.pst")
# Gewünschten Ordner auswählen
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")
# Holen Sie sich Inhalte in den Ordner
messageInfoCollection = sourceFolder.get_contents()
# Nachrichten im Ordner durchlaufen
for messageInfo in messageInfoCollection:
print ("Subject: " + messageInfo.subject)
print("To: " + messageInfo.display_to)
Extrahieren Sie Kontakte aus einer PST-Datei in Python
In bestimmten Fällen müssen Sie möglicherweise die in einer PST-Datei gespeicherten Kontaktinformationen extrahieren. Die folgenden Schritte zeigen, wie Sie in Python auf die Kontakte in einer PST-Datei zugreifen.
- Laden Sie die PST-Datei mit der Methode PersonalStorage.fromfile().
- Rufen Sie die Referenz des Kontaktordners mit der Methode getpredefinedfolder(StandardIpmFolder.CONTACTS) ab.
- Holen Sie sich eine Sammlung von Kontakten mit der Methode getcontents().
- Durchlaufen Sie die Sammlung und lesen Sie jeden Kontakt oder speichern Sie ihn.
Das folgende Codebeispiel zeigt, wie Kontakte aus einer PST-Datei in Python extrahiert werden.
from aspose.email import PersonalStorage, StandardIpmFolder, ContactSaveFormat
# PST-Datei laden
pst = PersonalStorage.from_file("SampleContacts_out.pst")
# Kontaktordner auswählen
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)
# Kontakte erhalten
contactCollection = folderInfo.get_contents()
# Durchlaufen Sie die Kontaktsammlung
for messageInfo in contactCollection:
# Holen Sie sich die Kontaktinformationen
mapi = pst.extract_message(messageInfo)
contact = mapi.to_mapi_message_item()
# Zeigen Sie einige Inhalte auf dem Bildschirm an
print("Name: " + contact.name_info.display_name)
# Auf Disc im MSG-Format speichern
if contact.name_info.display_name is not None:
# Kontakt speichern
contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)
Holen Sie sich eine kostenlose API-Lizenz
Sie können Aspose.Email für Python kostenlos testen, indem Sie eine temporäre Lizenz erwerben.
Fazit
In diesem Artikel haben Sie gelernt, wie Sie PST-Dateien in Python parsen. Außerdem haben Sie gesehen, wie Sie Kontakte und Nachrichten programmgesteuert in Python aus einer PST-Datei extrahieren. Darüber hinaus können Sie mehr über Aspose.Email erfahren, indem Sie Dokumentation verwenden. Außerdem können Sie Ihre Fragen oder Fragen in unserem Forum teilen.