我正在尝试将字节转换/解码为字符串,我尝试过的代码如下所示:
body = ""
path = "C:\\Users\\...\\Demo"
listing = os.listdir(path)
for em in listing:
mail = os.path.join(path, em)
file = open(mail, 'rb')
e_content = file.read()
file.close()
b = email.message_from_bytes(e_content)
bbb = b['from']
bbb = str(bbb)
if '<' in bbb:
bbb = bbb.split("<",1)[1]
bbb = bbb[:-1]
ccc = b['to']
if b.is_multipart():
for part in b.walk():
ctype = part.get_content_type()
cdispo = str(part.get('Content-Disposition'))
# skip any text/plain (txt) attachments
if ctype == 'text/plain' and 'attachment' not in cdispo:
body = part.get_payload(decode=True) # decode
break
else:
body = b.get_payload(decode=True)
mystring = str(body, 'utf-8','ignore')
print(mystring)
不幸的是,这段代码出现了以下错误:
mystring = str(body, 'utf-8','ignore')
TypeError: decoding str is not supported
我应该怎么做才能解决这个问题? 任何帮助表示赞赏。 :)
最佳答案
以下内容适用于 Python 2.7.12 和 3.5.2:
body = b'<html>\n<body>\n<p>Some text</p></body></html>'
mystring = body.decode('utf-8')
print(mystring)
您更新的代码适用于 Python 3.5.2,但不适用于 Python 2.7.12。
关于python - 如何将字节转换为字符串,Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47737021/