仅当表中有更改时,才使用python每小时发送一封包含电子邮件的电子邮件

仅当表中有更改时,才使用python每小时发送一封包含电子邮件的电子邮件,python,Python,我有一个程序,每小时循环一次,并发送一封包含结果的电子邮件。但是,表格在一天开始时可能是空白的,并且表格中的每小时可能没有变化。这是我发送电子邮件和表格的代码(我想这一切都很简单) table=df.loc[:,['colm1','colm2','colm3'] body=''+table.to_html()+'' outlook=win32.Dispatch('outlook.application') mail=outlook.CreateItem(0) 邮寄至xxx@yyy.com' ma

我有一个程序,每小时循环一次,并发送一封包含结果的电子邮件。但是,表格在一天开始时可能是空白的,并且表格中的每小时可能没有变化。这是我发送电子邮件和表格的代码(我想这一切都很简单)

table=df.loc[:,['colm1','colm2','colm3']
body=''+table.to_html()+''
outlook=win32.Dispatch('outlook.application')
mail=outlook.CreateItem(0)
邮寄至xxx@yyy.com'
mail.Subject='Report'
mail.HTMLBody=正文
mail.Send()

我想要的是,如果表格不是空的,或者表格与上一个小时的表格不同,it部门才发送电子邮件。我想听听你的建议

吃完就收拾桌子好吗?谁更新了表格?如何加载其数据?到目前为止,您尝试添加了哪些功能?根据表的大小,只需将
table.to\u html()
的输出与上一次迭代的值进行比较即可。请查看Python缓存,比较的理想方法是在表中添加一个版本或上一次更新的标记,该标记可以进一步存储在缓存中,比较这两个标记并采取相应的操作。这样,您就可以避免在表格太大时比较整个表格的麻烦。此链接可能会帮助您从缓存开始
table = df.loc[:, ['colm1', 'colm2', 'colm3']]
body = '<html><body>' + table.to_html() + '</body></html>'


outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'xxx@yyy.com'
mail.Subject = 'Report'
mail.HTMLBody = body
mail.Send()