python下载邮件附件_Python - 从电子邮件附件下载excel文件然后解析它
編輯 - 更新
我創建了一個可怕的黑客,打開excel文件,然后使用相同的文件名將其保存下來,然后將excel文件打開到pandas中。這真的太可怕但我無法通過attachment.SaveFileAs創建和結束問題來解決問題。
我有以下代碼,在我的Outlook中找到一封電子郵件然后將excel文件下載到目錄。當我嘗試打開文件解析它并將其用于我的腳本中的另一部分時出現格式化錯誤時出現問題。
我知道這是由于Python將其保存下來的方式造成的,因為當我手動執行此操作時,它可以正常工作。
非常感謝任何幫助。
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)
總結
以上是生活随笔為你收集整理的python下载邮件附件_Python - 从电子邮件附件下载excel文件然后解析它的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7磁盘清理_为什么要清理磁盘碎片,
- 下一篇: 【ES8(2017)】async / a