Невозможно записать список в файл или фрейм данных - PullRequest
0 голосов
/ 18 декабря 2018

Я использую win32com.client для извлечения некоторой информации из Outlook.Я перебираю свои электронные письма и сохраняю адрес электронной почты отправителя в списке

import win32com.client

# make connection to Outlook
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

# choose fodler and set items within folder
inbox = outlook.GetDefaultFolder(6) 
messages = inbox.Items

# create list of senders
sender_list = []

# loop over items and add to dataframe
for msg in messages:
       if msg.Class==43:
           if msg.SenderEmailType=='EX':
               sender_list.append(msg.Sender.GetExchangeUser().PrimarySmtpAddress)
           else:
               sender_list.append(msg.SenderEmailAddress)

Затем пытаюсь записать в файл

with open('C:/Users/Desktop/test.txt', 'w') as file_handler:
    for item in sender_list:
        file_handler.write("{}\n".format(item))

Список создается (удаляются фактические адреса дляконфиденциальности), но он не записывается в файл, и при этом файл не создается.

['first.last@email.com',
 'first.las@email.com',
 'first.las@email.com',
 'first.las@email.com']

Однако, если я помещу вышеупомянутые значения в список вручную и попытаюсь записать, он запишет список в файл.

sender_list = ['first.last@email.com',
               'first.las@email.com',
               'first.las@email.com',
               'first.las@email.com']

with open('C:/Users/Desktop/test.txt', 'w') as file_handler:
    for item in sender_list:
        file_handler.write("{}\n".format(item))

Я также пытался создать новый фрейм данных и добавить список в новый столбец.Это создаст список, как и другая реализация, но не добавит список в фрейм данных.

# create empty dataframe
df = pd.DataFrame()

# create list of senders
sender_list = []

# loop over items and add to dataframe
for msg in messages:
       if msg.Class==43:
           if msg.SenderEmailType=='EX':
               sender_list.append(msg.Sender.GetExchangeUser().PrimarySmtpAddress)
#               print(msg.Sender.GetExchangeUser().PrimarySmtpAddress)
           else:
               sender_list.append(msg.SenderEmailAddress)
#               print(msg.SenderEmailAddress)

# add list to dataframe
df['Sender'] = sender_list

Попытка просмотра df

Out: df
Empty DataFrame
Columns: []
Index: []
...