我想用Python获得一个表,该表位于一个.msg文件的正文中。我可以获取正文内容,但是例如需要将表分成数据框。
我可以获取身体的内容,但不能分离身体的桌子
import win32com.client
import os
dir = r"C:\Users\Murilo\Desktop\Emails\030"
file_list = os.listdir(dir)
for file in file_list:
if file.endswith(".msg"):
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
msg = outlook.OpenSharedItem(dir + "/" + file)
print(msg.Body)
我需要包含在正文内容中的表,但不是所有正文
答案 0 :(得分:0)
我会看一下extract_msg库。它应该允许您以纯XML格式打开.msg文件,并且非常容易从内容中提取表。
msg = extract_msg.Message(fileLoc)
msg_message = msg.body
content = ('Body: {}'.format(msg_message))
答案 1 :(得分:0)
如果它是HTML表,请使用MailItem.HTMLBody
(而不是纯文本Body
)并从HTML中提取表。
答案 2 :(得分:0)
Outlook对象模型提供了三种处理项目正文的主要方法:
有关更多信息,请参见Chapter 17: Working with Item Bodies。
但是我认为最简单,最干净的方法是使用Word对象模型。您可以在How to read contents of an Table in MS-Word file Using Python?帖子中了解更多有关如何处理Word对象模型以及如何使用它来提取表内容的信息。