Python 如何在电子邮件正文中使用 DataFrame 输出作为文本

Mad*_*ngh 3 python email win32com pandas

我有数据帧 Df 的输出,我可以将其作为附件在邮件中发送,但无法在消息正文中打印 Df 值。请建议在电子邮件正文中打印我的 Df 值,这样我就不必添加附件。

import win32com.client as win32

outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'abc@xyg.com'
mail.Subject = 'Madsaage Subject'
mail.Body = 'print(Df)'
mail.HTMLBody = 'Please  Find Attached'  # This field is optional
# To attach a file to the email (optional):
mail.Attachments.Add('C:/XYZ/transport.csv')
mail.Send()
Run Code Online (Sandbox Code Playgroud)

Par*_*ait 6

考虑一下 pandas DataFrame.to_html(),它将数据渲染到 HTML 表中,以便在电子邮件的 HTMLBody 中使用。如果不指定文件名,它将以字符串形式输出表。

...
mail.Subject = 'Madsaage Subject'

mail.HTMLBody = '''<h3>Please find data attached and below.</h3>
                   {}'''.format(Df.to_html())
...
Run Code Online (Sandbox Code Playgroud)

或者,DataFrame.to_string()在电子邮件的正文中使用。

mail.Body = '''Please find data attached and below.\n\n
               {}'''.format(Df.to_string())
Run Code Online (Sandbox Code Playgroud)