У меня есть аналитический проект, который требует, чтобы я извлек «текущее состояние» PDF-файла, в котором находится наш отчет, который отправляется 4 раза в день.У меня есть код, написанный для очистки моего PDF, но мне нужно выяснить, как извлечь PDF из электронного письма, чтобы я мог просмотреть его с помощью своего кода.
Я попытался использовать код ниже
import win32com.client
import os
location = r'C:\Users\myusername\OneDrive - companyinfo\Department Projects\TestEmails'
files = [f for f in os.listdir(location)]
print(files)
for file in files:
if file.endswith('.msg'):
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
msg = outlook.OpenSharedItem(file)
att = msg.Attachments
for i in att:
i.SaveAsFil`e(os.path.join(r'C:\Users\username\OneDrive - companyname\Department Projects\TestPDF', i.FileName))
Ошибка, которую он выдает:
pywintypes.com_error: (-2147352567, 'Exception occurred.', (4096, u'Microsoft Outlook', u"We can't open 'Stats Report.msg'. It's possible the file is already open, or you don't have permission to open it.\n\nTo check your permissions, right-click the file folder, then click Properties.", None, 0, -2147287038), None)
В настоящее время я тестирую только один сохраненный файл test.msg, но у меня более 1400, мне нужно проанализировать.Возможно, это не самый лучший метод, так как я знаю, что VBA может сделать что-то похожее в Outlook, но у меня нет особых навыков в регионе VBA.
У меня установлен Outlook 2016 на компьютере под управлением Windows 7 под управлением Python 2.7.,Эту ошибку легко исправить?Есть ли лучший способ взять вложенный PDF-файл и сохранить его в папке, чтобы моя другая программа могла получить необходимые данные?
Желаемый вывод: вложение в формате PDF извлекается и сохраняется в отдельной папке.
Спасибо за вашу помощь и опыт,
Энди