Python 2.7 从保存的电子邮件中提取Outlook附件
我有一个分析项目,要求我提取PDF的“当前状态”,该PDF包含我们每天发送4次的报告。我有我的PDF刮写的代码,但我需要找出如何从电子邮件中提取PDF,这样我就可以通过我的代码一步通过它 我试着使用下面的代码Python 2.7 从保存的电子邮件中提取Outlook附件,python-2.7,Python 2.7,我有一个分析项目,要求我提取PDF的“当前状态”,该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
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领域没有太多技能
我在运行python 2.7的Windows 7计算机上安装了outlook 2016。这个错误容易修复吗?有没有更好的方法将附加的PDF保存到文件夹中,这样我的其他程序就可以获取必要的数据
所需输出:PDF附件被提取并保存到单独的文件夹中
感谢您的帮助和专业知识
安迪所以我找到了答案,它是多么的简单和愚蠢让我无理地沮丧 我的工作目录是错误的,即使我抓取了文件,文件名是唯一创建的项目 我创建了一个true_location变量,该变量为它提供了真正完整的工作目录,它工作起来非常有魅力
true_location = location + '\\' + file
在if子句下的for循环中输入它,它就像一个符咒
true_location = location + '\\' + file
最好的
安迪