[英]Python - Expected a character buffer object?
I have the following code: 我有以下代码:
import imaplib
import email
import codecs
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('email@gmail.com', 'pass')
mail.list()
mail.select("inbox")
result, data = mail.uid('search', None, "ALL")
i = len(data[0].split())
for x in range(i):
latest_email_uid = data[0].split()[x]
result, email_data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = email_data[0][1]
email_message = email.message_from_string(raw_email)
save_string = str("/Users/Me/Desktop/Email/" + str(x) + ".txt")
myfile = open(save_string, 'a')
myfile.write(email_message)
myfile.close()
(I am trying to export all the email as a txt file.) (我试图将所有电子邮件导出为txt文件。)
I get the error expected a character buffer object
. 我得到错误expected a character buffer object
。
Does anyone know why this would be? 有谁知道为什么会这样?
Thanks 谢谢
Edit: Error is in line myfile.write(email_message)
编辑:错误在行myfile.write(email_message)
email.message_from_string(raw_email)
is not returning a string, but a Message
object instead. email.message_from_string(raw_email)
不返回字符串,而是返回Message
对象。 You cannot write Message
objects directly to a file without serializing them in some way. 如果不以某种方式对它们进行序列化,则无法将Message
对象直接写入文件。
您所要做的就是将email_message
转换为字符串。
myfile.write(str(email_message))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.