Экспортируйте несколько файлов Outlook / MSG / точек данных в .CSV с помощью Python-модуля extract-msg. - PullRequest
0 голосов
/ 09 июля 2019

Я довольно новичок в Python и пытаюсь экспортировать ключевые точки данных из MSG-файлов в один файл .csv

. Я следовал инструкциям из этой темы: Анализ парсинга .msgфайлы с 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 голосов
/ 09 июля 2019

Следующее добавляет цикл, который открывается и просматривает все файлы 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})
...