簡而言之,我的問題是我想從“n”個郵箱中獲取收到的訊息并將郵箱(及其訊息)一個接一個地附加到彼此,然后我想作為資料幀列印到一個 excel 檔案中. (例如 n =5)
郵箱串列 = ['mailbox_1','mailbox_2','mailbox_3','mailbox_4','mailbox_5']
這是我的代碼,適用于一個郵箱的內容:
i = 0 # starting number of mailboxes
while i < len(mailbox_list): # I want to get messages for all mailboxes one by one
try:
# get the message content
rm_content = driver.find_element(By.XPATH, '//*[@id="content"]/messages/div[2]/div/div/table')
time.sleep(1)
messages = (rm_content.text.split('\n')) # these are the messages
print('Messages found')
# add these messages to a list
msg_list = [messages[i:i 3] for i in range(2, len(messages), 3)]
# (!!!) this list contains the messages for 1 mailbox that I want to append to the next item in the while loop
# use a dataframe for messages
df_msg_list = pd.DataFrame(msg_list)
df_msg_list.columns = ['Sender', 'Content', 'Date']
df_msg_list[['Inbox', 'Query_Date']] = pd.DataFrame([[get_key(f'{mailbox_list[i]}'), date]], index=df_msg_list.index)
print(df_msg_list)
# write into excel
writer = pd.ExcelWriter(messages_excel, engine='xlsxwriter')
df_msg_list.to_excel(writer, sheet_name=f'{date[0:10]}', header=True, index=False)
writer.save()
except NoSuchElementException:
pass # exception handling
print('No messages found')
i=i 1
有人可以幫助我如何將 msg_list 附加到 while 回圈中的下一個專案(下一個 msg_list)?
uj5u.com熱心網友回復:
您可以定義并保留一些全域變數,讓我們將其total_msg_list從回圈中呼叫,并將回圈中的當前值附加msg_list到該全域變數中。
像這樣的東西:
total_msg_list = []
i = 0 # starting number of mailboxes
while i < len(mailbox_list): # I want to get messages for all mailboxes one by one
try:
# get the message content
rm_content = driver.find_element(By.XPATH, '//*[@id="content"]/messages/div[2]/div/div/table')
time.sleep(1)
messages = (rm_content.text.split('\n')) # these are the messages
print('Messages found')
# add these messages to a list
msg_list = [messages[i:i 3] for i in range(2, len(messages), 3)]
total_msg_list.append(msg_list)
# use a dataframe for messages
df_msg_list = pd.DataFrame(msg_list)
df_msg_list.columns = ['Sender', 'Content', 'Date']
df_msg_list[['Inbox', 'Query_Date']] = pd.DataFrame([[get_key(f'{mailbox_list[i]}'), date]], index=df_msg_list.index)
print(df_msg_list)
# write into excel
writer = pd.ExcelWriter(messages_excel, engine='xlsxwriter')
df_msg_list.to_excel(writer, sheet_name=f'{date[0:10]}', header=True, index=False)
writer.save()
except NoSuchElementException:
pass # exception handling
print('No messages found')
i=i 1
#now, after the loop completed you can see the final content of total_msg_list
print(total_msg_list)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/417980.html
標籤:
