Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 从保存的电子邮件中提取Outlook附件_Python 2.7 - Fatal编程技术网

Python 2.7 从保存的电子邮件中提取Outlook附件

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

我有一个分析项目,要求我提取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.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
最好的

安迪