簡體   English   中英

Python - 期望一個字符緩沖對象?

[英]Python - Expected a character buffer object?

我有以下代碼:

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()

(我試圖將所有電子郵件導出為txt文件。)

我得到錯誤expected a character buffer object

有誰知道為什么會這樣?

謝謝

編輯:錯誤在行myfile.write(email_message)

email.message_from_string(raw_email)不返回字符串,而是返回Message對象。 如果不以某種方式對它們進行序列化,則無法將Message對象直接寫入文件。

您所要做的就是將email_message轉換為字符串。

myfile.write(str(email_message))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM