Разбор нескольких файлов "msg" и сохранение основного текста в файле csv - PullRequest
0 голосов
/ 02 октября 2018

Питон Новичок здесь.В настоящее время я пытаюсь выяснить, как проанализировать все файлы MSG, которые я сохранил в определенной папке, а затем сохранить основной текст в файл CSV.

import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

msg = outlook.OpenSharedItem(r"C:\Users\XY\Documents\Email Reader\test.msg")


print(msg.Body)

del outlook, msg

До сих пор я нашел только способоткройте один конкретный файл msg, но не все файлы, которые я сохранил в своей папке.Я думаю, что я должен быть в состоянии справиться с хранением данных в файле CSV, но я просто не могу понять, как читать несколько файлов MSG.Надеюсь, вы можете помочь мне!

ура

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Вы можете попробовать что-то вроде этого, чтобы перебрать каждый файл с расширением .msg в каталоге:

import os

pathname = os.fsencode('Pathname as string')

for file in os.listdir(pathname):
    filename = os.fsdecode(file)
    if filename.endswith(".msg"):
        #Do something
        continue
    else:
        continue

Надеюсь, это поможет!

0 голосов
/ 02 октября 2018

Вы можете использовать pathlib для перебора содержимого каталога.
Попробуйте это:

from pathlib import Path
import win32com.client

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

# Assuming \Documents\Email Reader is the directory containg files
for p in Path(r'C:\Users\XY\Documents\Email Reader').iterdir():
    if p.is_file() and p.suffix == '.msg':
        msg = outlook.OpenSharedItem(p)
        print(msg.Body)
...