具有新名称的Python新文件

时间:2018-01-28 13:09:43

标签: python outlook

我有一个python脚本,它读取outlook中的每个新电子邮件并将内容保存到文件中。问题是,当我收到新电子邮件时文件被覆盖了

如何在同一目录中创建具有不同名称的新文件,而不会在每次收到新电子邮件时覆盖其他文件。这是我到目前为止:

import win32com.client
import pythoncom
path = "C:\\Users\\..\\....\\newEmail.txt"

class Handler_Class(object):
    def OnNewMailEx(self, receivedItemsIDs):
        for ID in receivedItemsIDs.split(","):
            mailitem_properties.aspx
            mailItem = outlook.Session.GetItemFromID(ID)

            file = open(path, "w")
            file.write(mailItem.SenderEmailAddress + "\n")
            file.write(mailItem.Subject + "\n")
            file.write(mailItem.Body + "\n")
            file.close()
outlook = win32com.client.DispatchWithEvents("Outlook.Application", Handler_Class)
pythoncom.PumpMessages()

1 个答案:

答案 0 :(得分:0)

您可以在每次创建文件名时将创建时间附加到文件名中,如下所示:

import win32com.client
import pythoncom
import time

class Handler_Class(object):
    def OnNewMailEx(self, receivedItemsIDs):
        for ID in receivedItemsIDs.split(","):
            mailitem_properties.aspx
            mailItem = outlook.Session.GetItemFromID(ID)
            path = "C:\\Users\\..\\....\\newEmail_" + time.ctime().replace(' ', '_') +  ".txt"
            file = open(path, "w")
            file.write(mailItem.SenderEmailAddress + "\n")
            file.write(mailItem.Subject + "\n")
            file.write(mailItem.Body + "\n")
            file.close()
outlook = win32com.client.DispatchWithEvents("Outlook.Application", Handler_Class)
pythoncom.PumpMessages()

或者,您可以获得mailItem收到的时间并附加到文件名,以便它成为唯一的文件名。