python下载邮件附件_Python - 从电子邮件附件下载excel文件然后解析它
編輯 - 更新
我創(chuàng)建了一個(gè)可怕的黑客,打開(kāi)excel文件,然后使用相同的文件名將其保存下來(lái),然后將excel文件打開(kāi)到pandas中。這真的太可怕但我無(wú)法通過(guò)attachment.SaveFileAs創(chuàng)建和結(jié)束問(wèn)題來(lái)解決問(wèn)題。
我有以下代碼,在我的Outlook中找到一封電子郵件然后將excel文件下載到目錄。當(dāng)我嘗試打開(kāi)文件解析它并將其用于我的腳本中的另一部分時(shí)出現(xiàn)格式化錯(cuò)誤時(shí)出現(xiàn)問(wèn)題。
我知道這是由于Python將其保存下來(lái)的方式造成的,因?yàn)楫?dāng)我手動(dòng)執(zhí)行此操作時(shí),它可以正常工作。
非常感謝任何幫助。
from win32com.client import Dispatch
import email
import datetime as date
import pandas as pd
import os
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
val_date = date.date.today()
sub_today = 'Hi'
att_today = 'Net - Regional.xls'
## loop through inbox attachments
for msg in all_inbox:
yourstring = msg.Subject.encode('ascii', 'ignore').decode('ascii')
if(yourstring.find('Regional Reporting Week') != -1):
break
## get attachments
for att in msg.Attachments:
if att.FileName == att_today:
attachments = msg.Attachments
break
attachment = attachments.Item(1)
fn = os.getcwd() + '\\' + att_today
attachment.SaveASFile(fn)
# terrible hack but workable in the short term
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.DisplayAlerts = False
excel.Visible = True
wb = excel.Workbooks.Open(fn)
wb.SaveAs(fn)
wb.Close(True)
xl = pd.ExcelFile(fn)
data_df = xl.parse("RawData - Global")
print(data_df)
總結(jié)
以上是生活随笔為你收集整理的python下载邮件附件_Python - 从电子邮件附件下载excel文件然后解析它的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: win7磁盘清理_为什么要清理磁盘碎片,
- 下一篇: python url拼接_python学