我正在尝试提取.pst
文件的内容(作为字符串/文本)。
我尝试了不同的答案,但没有找到任何相关的解决方案。
Outlook PST File Parsing in Python
Read PST files from win32 or pypff
Export PST and OST with pypff / libpff
我主要关注libpff库(https://github.com/libyal/libpff),但我认为该库对提取pst文本没有帮助。
我的代码:
import pypff
pst = pypff.file()
pst.open("my_pst_file.pst")
该代码将打开pst,但是我看不到如何将其内容提取为txt。
最佳答案
是的,您可以使用pypff
提取文本。我也遵循此链接(Export PST and OST with pypff / libpff)。pypff.file()
可能会造成混淆,因为开发人员并未提供有关每个功能和属性的说明性文档。花了我一段时间自己探索。
这是我最近所做的。
# path to your pst file
opst = pypff.open(path)
root = opst.get_root_folder()
# 3 subfolders, for me, only 2nd one has content
# Use 'root.get_number_of_sub_folders()' to see which folder is blank
folder = root.get_sub_folder(1)
# 2 subfolders, the 2nd one is my inbox
inbox = folder.get_sub_folder(1)
# mail count in current folder
count = inbox.get_number_of_sub_items()
# Example of extracting info from one email
msg = inbox.get_sub_item(0)
subject = msg.subject
content = msg.plain_text_body.decode()
sender = msg.sender_name
header = msg.transport_headers
sent_time = msg.delivery_time
if msg.number_of_attachments > 0:
# read from attachment 1
size = attachment = msg.get_attachment(0).get_size()
attachment_content = (msg.get_attachment(0).read_buffer(attach_size)).decode('ascii', errors='ignore')
对于那些想使用
pypff
的人,不要使用pip install。它仅从版本20161119构建,这对我来说崩溃很多。从其website上的较新版本进行构建。有一个
setup.py
,它应该很容易构建。对于附件,
ascii
解码器不是理想的选择。我在python3中尝试了all 98 decoders,但是没有一个可以解码每个字节。这意味着,单个方法无法解码全部。就我而言,utf_16
可以提取内容,对我来说足够了。关于python - 从.PST文件中提取文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58507417/