python win32com.client outlook.OpenSharedItem, заменяющий пробелы на% 20 - PullRequest
0 голосов
/ 30 августа 2018

Я использую win32com.client для проверки электронной почты на наличие вложений, если есть вложение, оно заполняет список wxpython именами файлов вложений. Это работает, только если имя электронной почты не содержит пробелов. Если в имени файла есть пробелы, он заменяет их на «% 20», что приводит к ошибке. Я попытался использовать urllib.unquote(), но это не сработало. Кто-нибудь может помочь с этим?

def onListBox(self, event):
        outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
        self.email = event.GetEventObject().GetStringSelection()
        msg2 = outlook.OpenSharedItem(self.emailLocale + self.email)
        att=msg2.Attachments
        print
        if len(att):
            attachList = [i.FileName for i in att]
            self.attachList.Set(attachList)

Traceback (последний вызов был последним): File «C: \ Users \ onp1ldy \ eclipse-workspace \ WOrk \ EmailParser.py», строка 137, в onListBox msg2 = outlook.OpenSharedItem (urllib.unquote (self.emailLocale + self.email) .decode ('utf8')) Файл "", строка 2, в OpenSharedItem pywintypes.com_error: (-2147352567, 'Исключение произошло. ', (4096, u'Microsoft Outlook', u "Мы не можем открыть 'C: //Users/onp1ldy/Desktop/emails/emails_sent/Canceled%20%20skype.msg. Возможно, файл уже открыт или у вас нет разрешения чтобы открыть его. \ n \ nЧтобы проверить свои разрешения, щелкните правой кнопкой мыши папку с файлом, затем нажмите Свойства. ", Нет, 0, -2147287038), Нет)

...