I-Anhänge von Outlook 2013 auf Windows zum Download versuchen 7. Ich schrieb für sie folgende Funktion:'UnboundLocalError' in derselben Funktion Anlage von Outlook 2013 zum Download, wenn sie mit verschiedenen Parametern läuft
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"
ich die angerufene Funktion mit zwei verschiedenen Listen: Liste 1 und Liste 2.
list1=['Hi','cr.txt']
list2=['abc Requirements','cr.txt']
Der Code funktioniert, wenn ich es mit list1 aufrufen.
attach(list1[0],list1[1])
aber wenn ich es mit den Parametern von list2 aufrufen, zeigt es Fehler
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
Ich weiß nicht, was es verursacht. Kann mir jemand dabei helfen?
Meine Vermutung ist, 'msg.Attachments' leer war deshalb' attachment' wurde nie definiert. –
@AlexFung Ich habe es getestet, indem ich eine E-Mail mit dem erforderlichen Anhang an mich selbst gesendet habe. Wenn die Mail nicht vorhanden ist, dann schätze ich, dass es einen "AttributeError" –
auslöst. So vermeidet meine Lösung die Fehler nicht? –