Я пытаюсь разобрать файл .eml. .Eml имеет вложение Excel, которое в настоящее время кодируется в формате base64. Я пытаюсь понять, как декодировать его в XML, чтобы потом я мог превратить его в CSV, с которым я могу что-то делать.
Это мой код прямо сейчас:
import email
data = file('Openworkorders.eml').read()
msg = email.message_from_string(data)
for part in msg.walk():
c_type = part.get_content_type()
c_disp = part.get('Content Disposition')
if part.get_content_type() == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':
excelContents = part.get_payload(decode = True)
print excelContents
Проблема
Когда я пытаюсь его расшифровать, он выдает что-то похожее на это.
Я использовал этот пост, чтобы помочь мне написать код выше.
Как получить текстовое сообщение электронной почты с помощью Python?
Обновление:
Это в точности соответствует решению поста с моим файлом, но part.get_payload()
возвращает все, что все еще закодировано. Я не понял, как получить доступ к декодированному контенту таким образом.
import email
data = file('Openworkorders.eml').read()
msg = email.message_from_string(data)
for part in msg.walk():
if part.get_content_type() == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':
name = part.get_param('name') or 'MyDoc.doc'
f = open(name, 'wb')
f.write(part.get_payload(None, True))
f.close()
print part.get("content-transfer-encoding")