Python Prévu un tampon de caractères de l'objet?
J'ai le code suivant:
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()
(Je suis en train d'exporter tous les e-mails dans un fichier txt.)
Je reçois le message d'erreur expected a character buffer object
.
Personne ne sait pourquoi ce serait?
Grâce
Edit: l'Erreur est dans la ligne de myfile.write(email_message)
Stacktrace s'il vous plaît. Dans la ligne à laquelle l'exception a lieu? Oh, et est-ce python 2 et python 3?
Je suppose que cela se produit parce que
J'ai ajouté cette ligne. C'est Python deux. (Je pense que 🙁 )
Je vois. Quelqu'un aurait-il une idée de comment je voudrais changer cela? Je pensais que c'était une chaîne de caractères.
docs.python.org/library/... voir
Je suppose que cela se produit parce que
email.message_from_string(raw_email)
n'est pas de retourner une chaîne de caractères, mais une Message
objet à la place.J'ai ajouté cette ligne. C'est Python deux. (Je pense que 🙁 )
Je vois. Quelqu'un aurait-il une idée de comment je voudrais changer cela? Je pensais que c'était une chaîne de caractères.
docs.python.org/library/... voir
as_string
OriginalL'auteur samiles | 2012-05-12
Vous devez vous connecter pour publier un commentaire.
email.message_from_string(raw_email)
n'est pas de retourner une chaîne de caractères, mais uneMessage
objet à la place. Vous ne pouvez pas écrireMessage
objets directement un fichier sans sérialisation d'une certaine manière.OriginalL'auteur ubik
Tout ce que vous avez à faire est de convertir
email_message
à une chaîne.OriginalL'auteur user2214197