我每天都会收到一封电子邮件,其中的主题部分是可变的。所以电子邮件主题的固定部分是:电子邮件声明[今天的日期,格式为dd/mm/yy],在此之后主题有一个带有大量随机数的可变部分。现在我想从这封电子邮件中提取附加的 csv 文件并将其保存在 Python 中。我尝试过以下方法:
import glob
import win32com.client as win32
from datetime import date
Date_fmt2 = (date.today()).strftime("%d/%m/%y")
outlook = win32.Dispatch('outlook.application').GetNamespace("MAPI")
folder = outlook.Folders.Item(1).Folders.Item("Inbox").Folders.Item("Statements")
messages = folder.Items
for message in messages:
if message.Subject == glob.glob(str('e-mail statement ' + Date_fmt2 + '*')):
attachment = message.Attachments.Item(1)
attachment.SaveAsFile('C:\\...\\Statement ' + Date_fmt2 + '.csv')
我以为
glob.glob
部分可以解决变量名称,但它似乎返回一个空值。有人知道该怎么做吗?
提前致谢!
如果问题出在 glob.glob 上,你可以尝试“startswith”
if message.Subject.startswith('e-mail statement ' + Date_fmt2):
attachment = message.Attachments.Item(1)
attachment.SaveAsFile('C:\\...\\Statement ' + Date_fmt2 + '.csv')
仅当可变部分位于末尾时,这才是正确的。