Я читаю данные CSV во фрейм данных, после чего код Python выполняет некоторые обновления во фрейме данных. При печати фрейма данных я вижу обновленные значения, но при обратной записи в CSV. Я все еще получаю старые значения.
to_csv не записывает обновленный фрейм данных
Проблема похожа на приведенную выше ссылку, но у меня просто один код класса без множественной ссылки на один и тот же файл, но я получаю ту же проблему, и у меня недостаточно репутации, чтобы комментировать этот пост.
import win32com.client as win32
import pandas as pd
class MailDispatcher:
global file_location
file_location = 'C:\Pilot Run\Files\\'
delivery_status = pd.read_csv(file_location + "delivery_status.csv")
for index, row in delivery_status.iterrows():
# Mail trigger
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'abc@gmail.com'
mail.Subject = 'test ' + str(row[3])
if mail.Send() is None:
row[4] = 'Y'
print(row) #printing correct data
outlook.Quit()
print(delivery_status)
#output = open(file_location + 'delivery_status.csv', 'w')
# writing old data in csv
delivery_status.to_csv(file_location + 'delivery_status.csv', index=None, header=True)
#output.close()
##Tried with the below code to as per some comments, still getting the same issue:
output = open(file_location + 'delivery_status.csv', 'w')
delivery_status.to_csv(output, index=None, header=True)
output.close()