【问题标题】:Export multiple Outlook .MSG files/datapoints to .CSV using extract-msg Python module使用 extract-msg Python 模块将多个 Outlook .MSG 文件/数据点导出到 .CSV
【发布时间】:2019-11-18 21:37:50
【问题描述】:

我对 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})

【问题讨论】:

    标签: python csv msg


    【解决方案1】:

    下面添加了一个循环,打开并查看当前目录中的所有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})
    

    【讨论】:

    • 正是我需要的,非常感谢!
    • 我正在尝试运行它,但没有任何运气。最初,我不断收到“意外缩进”错误,因此它会创建 CSV 文件,但从未将任何内容放入其中。我可以通过删除换行符来消除错误,但现在它只是到达最后一行代码并永远挂起,而无需创建 CSV。知道我哪里出错了吗?
    猜你喜欢
    • 2014-12-06
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多