Python - Erwartet ein character-buffer-Objekt?
Ich habe den folgenden code:
import imaplib
import email
import codecs
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('[email protected]', '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()
(Ich bin versucht, zum exportieren der E-Mail als txt-Datei).
Bekomme ich die Fehlermeldung expected a character buffer object
.
Weiß jemand, warum das wäre?
Dank
Edit: Fehler ist in Zeile myfile.write(email_message)
Stacktrace bitte. In welcher Zeile die exception Auftritt? Oh, und ist es python 2 oder python 3?
Ich denke, dies geschieht, weil
Ich habe Hinzugefügt, dass die Linie. Es ist Python zwei. (Ich denke 🙁 )
Ich sehe. Hat jemand eine Idee, wie ich dies ändern? Ich dachte, es war ein string.
docs.python.org/library/... sehen
Ich denke, dies geschieht, weil
email.message_from_string(raw_email)
ist nicht wieder ein string, sondern ein Message
Objekt statt.Ich habe Hinzugefügt, dass die Linie. Es ist Python zwei. (Ich denke 🙁 )
Ich sehe. Hat jemand eine Idee, wie ich dies ändern? Ich dachte, es war ein string.
docs.python.org/library/... sehen
as_string
InformationsquelleAutor samiles | 2012-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
email.message_from_string(raw_email)
ist nicht wieder ein string, sondern einMessage
Objekt statt. Sie können nicht schreibenMessage
Objekte direkt in eine Datei ohne serialisieren Sie in irgendeiner Weise.InformationsquelleAutor ubik
Alles, was Sie tun müssen, ist zu konvertieren
email_message
einen string.InformationsquelleAutor user2214197