我觉得这是一个简单的问题但是我找不到一个直截了当的答案。
我有一个我需要解析的电子邮件(.eml文件)。此电子邮件在正文中有一个数据表,我需要将其导出到我的数据库。我已经成功地从txt文件电子邮件和附加的PDF文件中解析数据,因此我理解了映射到数据存储位置以及RegularExpressions等概念,但这些eml文件我似乎无法弄清楚。
在我的代码中,我有三个代码块,主要是尝试做同样的事情(其中两个是评论)。我只是试图捕获电子邮件中的任何或所有数据。但是,每个代码块都会产生相同的错误:
TypeError: initial_value must be str or None, not _io.TextIOWrapper
我已经读过这个错误很可能是因为Python期望接收字符串而不是接收字节,反之亦然。所以我通过尝试实施io.StringIO
或io.BytesIO
来跟进这些尝试,但都没有奏效。我希望能够识别并解析电子邮件中的特定数据。
感谢您的帮助,以及提出批评的问题。
我的代码:
import email
#import io
import os
import re
path = 'Z:\\folderwithemlfile'
for filename in os.listdir(path):
file_path = os.path.join(path, filename)
if os.path.isfile(file_path):
with open(file_path, 'r', encoding="utf-8") as f:
b = email.message_from_string(f)
if b.is_multipart():
for paylod in b.get_payload():
print(payload.get_payload())
else:
print(b.get_payload())
#b = email.message_from_string(f)
#bbb = b['from']
#ccc = b['to']
#print(f)
#msg = email.message_from_string(f)
#msg['from']
#msg['to']