2016-02-17 1 views
1

Je suis en train d'enregistrer des pièces jointes (les fichiers sont des fichiers de données brutes NRG) de e-mails Outlook sur mon bureau, mais je reçois l'erreur suivante: « AttributeError: < inconnu> .SaveAsFile »Enregistrement de pièces jointes Outlook avec Python

Tout fonctionne très bien (je pense) jusqu'à ce que je tente de sauvegarder le fichier ...

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 



inbox = outlook.Folders["myinboxfolder"].Folders["Inbox"].Folders["[folder i need]"] 
messages = inbox.Items 
message = messages.GetLast() 
attachment = message.attachments 

attachment.SaveAsFile('C:\Users\my name \Desktop\Unsorted' + attachment.FileName) 

Merci

Répondre

1

Essayez ceci:

attachment.SaveASFile(os.getcwd() + '\\' + attachment.FileName) 

Ceci devrait copier le fichier dans votre répertoire de travail actuel. Ensuite, vous pouvez utiliser le module shutil pour copier le fichier à la destination que vous désirez:

shutil.copy(src, dst) 

ou vous pouvez déplacer le fichier au lieu de copier en utilisant:

shutil.move(src, dst) 

Voici les shutil docs: https://docs.python.org/2/library/shutil.html

0

Je sais que c'est un ancien poste, mais:

ne doit pas l'emplacement du fichier soit en utilisant deux \ 's pour chaque niveau de répertoire, donc:

attachment.SaveAsFile('C:\\Users\\my name \\Desktop\\Unsorted' + attachment.FileName) 

vous avez devrait pas non plus un \\ ou \ après « Unsorted », ou êtes-vous d'enregistrer le fichier sur votre bureau et de l'appeler UnsortedYourFileAttachmentNameHere.xls donc la ligne de travail devrait être:

attachment.SaveAsFile('C:\\Users\\YOURUSERNAMEHERE\\Desktop\\Unsorted\\' + attachment.FileName)