2016-08-01 10 views
-1

Ich habe versucht, Anhänge von MSG-Datei in Pdf-Dateien, aber mit unterschiedlichen Namen zu speichern. Könnte mir bitte jemand weiterhelfen? Hier ist mein Code. Der Fehler kommt in der letzten Zeile des Codes. HierOutlook-Anhänge mit unterschiedlichen Namen in Python speichern

import win32com.client 
import glob 
import os 

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
path = "C:\\python\\test-email" 
allFiles = glob.glob(path + "/*.msg") 
working_path = os.getcwd() 

for file in allFiles: 
msg = outlook.OpenSharedItem(file)  
count_attachments = msg.Attachments.Count 


refno_start = text.find('Student ID') + 8 
newname = "%s.pdf" % text[refno_start + 2:refno_start + 11] 

if count_attachments > 0: 
    for item in range(count_attachments): 
     attached = msg.Attachments.Item(item + 1)   
     attached.SaveAsFile(working_path +'\\'+newname) 

ist der Fehler messgae:

File "email-reader1.py", line 46, in <module> 
    attached.SaveAsFile(working_path +'\\'+newname) 
    File "<COMObject Item>", line 2, in SaveAsFile 
    pywintypes.com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Out look', 'Cannot save the attachment. File name or directory name is not valid.',None, 0, -2147024773), None) 
+0

Welchen Fehler bekommen Sie? – bernie

+0

Sie sollten 'os.path.join' für Ihre Pfadgenerierung verwenden, zB:' attached.SaveAsFile (os.path.join (working_path, newname)) ' – bernie

+0

@bernie Ich habe das bereits versucht und habe folgende Fehlermeldung erhalten: – user2293224

Antwort

1

Sie erhalten diesen Fehler, da Pfad, den Sie versuchen, speichern nicht nur für Windows ist. Es kann ungültige Zeichen enthalten. Informationen dazu, was in Windows-Dateinamen und -pfaden zulässig ist, finden Sie unter this link on MSDN.

+0

Danke für den Vorschlag. Es gab ein Problem im Pfad. T – user2293224

Verwandte Themen