我试图将python2.x代码移植到python 3。
from mimetools import Message
...
headers = Message(StringIO(data.split('\r\n', 1)[1]))我发现mimetools不再存在于python 3中,取而代之的是电子邮件类。我试着把它替换成这样
headers = email.message_from_file(io.StringIO(data.split('\r\n', 1)[1]))但有了这个错误:
headers = email.message_from_file(io.StringIO(data.split('\r\n', 1)[1]))
TypeError: Type str doesn't support the buffer API我正在寻找这样做的提示,从mimetools移植到电子邮件更正。原来的代码不是我写的。它可以在这里找到:https://gist.github.com/jkp/3136208
发布于 2014-04-03 23:28:39
亚历克斯从他的评论中提出了自己的解决方案:
import email
stream = io.StringIO()
rxString = data.decode("utf-8").split('\r\n', 1)[1]
stream.write(rxString)
headers = email.message_from_string(rxString)发布于 2019-06-28 15:42:09
找到短解
from email import message_from_string
data = socket.recv(4096)
headers = message_from_string(str(data, 'ASCII').split('\r\n', 1)[1])https://stackoverflow.com/questions/20139382
复制相似问题