я пытаюсь загрузить вложения Outlook 2013 на Windows 7. Я написал следующие функции для него:«UnboundLocalError» в той же функции, чтобы загрузить вложение из Outlook 2013 при запуске с различными параметрами
def attach(subject,name):
print "Execution begin"
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
val_date = date.date.today()
print "accessing parameters"
sub_today = subject
att_today = name
for msg in all_inbox:
if msg.Subject == sub_today:
print "sub_today"
break
for attachment in msg.Attachments:
if attachment.FileName == att_today:
print "att_today"
print attachment
break
repository='C:\\Users\\tanmay.shrivastava\\Desktop\\Dashboard'
print "repository"
attachment.SaveAsFile(repository + '\\'+att_today)
print "saved"
print "Execution completed"
я назвал функция с двумя разными списками: список 1 и список 2.
list1=['Hi','cr.txt']
list2=['abc Requirements','cr.txt']
Код работает, когда я вызываю его со списком1.
attach(list1[0],list1[1])
но когда я называю его с параметрами из list2, он показывает ошибку
attach(list2[0],list2[1])
UnboundLocalError Traceback (most recent call last)
<ipython-input-12-4238cd3c2efd> in <module>()
----> 1 attach(list2[0],list2[1])
<ipython-input-2-3bb862eb2bb6> in attach(subject, name)
26 repository='C:\\Users\\tanmay.shrivastava\\Desktop\\Dashboard'
27 print "repository"
---> 28 attachment.SaveAsFile(repository + '\\'+att_today)
29 print "saved"
30 print "Execution completed"
UnboundLocalError: local variable 'attachment' referenced before assignment
Я не знаю, что является причиной его. Может кто-нибудь мне помочь?
Моя догадка 'msg.Attachments' был пуст поэтому' attachment' никогда не определено. –
@AlexFung Я проверил его, отправив электронное письмо мне с необходимым приложением. Если почта нет, то я предполагаю, что она вызывает «AttributeError» –
. Так что мое решение не позволяет избежать ошибок? –