Python 无法使用file.readlines()读取原始电子邮件数据
我试图解析来自特定文件路径的原始电子邮件数据。但是,每当我使用file.readlines通过电子邮件库读取文件时,我都会遇到一个错误。如果我使用file.read,它只解析第一封发送的邮件中的数据。 如何解析和分析原始邮件数据Python 无法使用file.readlines()读取原始电子邮件数据,python,python-3.x,email,parsing,email-parsing,Python,Python 3.x,Email,Parsing,Email Parsing,我试图解析来自特定文件路径的原始电子邮件数据。但是,每当我使用file.readlines通过电子邮件库读取文件时,我都会遇到一个错误。如果我使用file.read,它只解析第一封发送的邮件中的数据。 如何解析和分析原始邮件数据 with open(file_path, "r") as file: content = file.readlines() email_to_string = email.message_from_string(content) headers
with open(file_path, "r") as file:
content = file.readlines()
email_to_string = email.message_from_string(content)
headers = email_to_string._headers
header_contents = {}
for header in headers:
if "From" in header:
header_contents['From'] = header[-1]
elif "To" in header:
header_contents['To'] = header[-1]
elif "Date" in header:
header_contents['Date'] = header [-1]
elif "Subject" in header:
header_contents['Subject'] = header[-1]
print("HEADER CONTENTS", header_contents)
if email_to_string.is_multipart():
body = []
for lines in body.get_payload():
body.append(lines)
body = " ".join(body)
else:
body = email_to_string.get_payload()
print("HEADER", headers)
print("HEADER CONTENTS", header_contents)
print("BODY", body)
**错误**
Traceback (most recent call last):
File "test.py", line 7, in <module>
email_to_string = email.message_from_string(content)
File "/usr/lib/python3.6/email/__init__.py", line 38, in message_from_string
return Parser(*args, **kws).parsestr(s)
File "/usr/lib/python3.6/email/parser.py", line 68, in parsestr
return self.parse(StringIO(text), headersonly=headersonly)
TypeError: initial_value must be str or None, not list
该方法应为字符串数据类型,但file.readlines返回列表
尝试使用file.read返回字符串。以下是对其文档的详细说明
with open(file_path, 'r') as file_:
content = file_.read().replace('\n', '')
email_to_string = email.message_from_string(content)