无法将列表写入文件或数据框

时间:2018-12-18 16:38:54

标签: python-3.x list dataframe win32com

我正在使用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: []

0 个答案:

没有答案