使用extract-msg Python模块将多个Outlook .MSG文件/数据点导出到.CSV

时间:2019-07-09 10:38:51

标签: python csv msg

我对Python还是很陌生,我正在尝试将.msg文件中的关键数据点导出到单个.csv中

我遵循了该线程的指导: Parsing outlook .msg files with python

这与使用csv模块结合在一起,使我可以从单个.msg文件导出结果,但是我不知道如何对其进行编程以解析同一文件夹中的所有.msg文件,并且将每个文件的结果插入csv文件的后续行中。

import extract_msg
import csv

f = r'\Email.msg'  
msg = extract_msg.Message(f)
msg_sender = msg.sender
msg_date = msg.date
msg_subj = msg.subject
msg_message = msg.body

with open(r'\Email.csv', mode='w') as file:
    fieldnames = ['Subject', 'Date', 'Sender']
    writer = csv.DictWriter(file, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerow({'Subject': msg_subj, 'Date': msg_date, 'Sender': msg_sender})

1 个答案:

答案 0 :(得分:0)

以下内容添加了一个循环,该循环打开并查看当前目录中的所有msg文件,并输出到单个csv文件

import os
import extract_msg
import csv

with open(r'Email.csv', mode='w') as file:
    fieldnames = ['Subject', 'Date', 'Sender']
    writer = csv.DictWriter(file, fieldnames=fieldnames)

    writer.writeheader()

    for f in os.listdir('.'):
        if not f.endswith('.msg'):
            continue

        msg = extract_msg.Message(f)
        msg_sender = msg.sender
        msg_date = msg.date
        msg_subj = msg.subject
        msg_message = msg.body

        writer.writerow({'Subject': msg_subj, 'Date': msg_date, 'Sender': msg_sender})