【发布时间】:2020-02-19 20:37:47
【问题描述】:
我知道这已经被问过好几次了,我已经尝试过显然对其他人有用的方法...我有 1000 多个带有 .xlsx 文件附件的 Outlook .msg 文件存储在我桌面上的文件夹中,我只需要提取 .xlsx 文件以组合成单个数据帧。
我已经尝试过VBA macro、Python [Win32] (Parsing outlook .msg files with python) 和msg-extractor。我能做的最好的就是从单个 .msg 文件中提取单个附件
非常感谢任何建议。谢谢!
import argparse
import csv
import os as os
import pathlib
import sys
from datetime import date, datetime, timedelta, tzinfo
from enum import Enum, IntEnum
from tempfile import mkstemp
import dateutil.parser as duparser
from dateutil.rrule import rrulestr, rruleset
import pywintypes
import pytz
import win32com.client
path = r'C:\Users\Me\Desktop\MyFiles\feb_2018'
files = [f for f in os.listdir(path) if '.msg' in f]
print (files)
for file in files:
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
msg = outlook.OpenSharedItem(os.path.join(path, file))
att=msg.Attachments
for i in att:
i.SaveAsFile(os.path.join(path, i.FileName))
【问题讨论】:
-
VBA 宏似乎效果最好,但只提取 1 个文件,代码中是否有我遗漏的命令?
标签: python vba attachment data-extraction