如何将实际位置更改为临时位置,在来自 MySQL 的 Python 电子邮件表上的 csv 文件中添加标题和删除空间?

苏内特

我有一个运行 MySQL 查询并发送带有 csv 附件的电子邮件的 python 代码。我需要进行以下三项更改。有人可以帮我解决这个问题吗?

  • 我需要将实际位置更改为临时位置(我累了,它给了我一个错误,然后我将其更改为真实位置)
  • 我的结果 csv 文件上没有标题。如何在结果 csv 上添加标题?
  • 它在每个 raw 之间放置了一个空的 raw,我该如何删除它。

代码 -

from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.base import MIMEBase
import mysql.connector
import csv


my_db = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="admin",
    database="simplymacstaging"
)

my_cursor = my_db.cursor()

my_cursor.execute("SELECT CONVERT(DateCreated, Date) 'Date', StoreName, ROUND(sum(TotalCost), 2) 'TotalCost' "
                  "FROM simplymacstaging.ajdustmenthistory  WHERE ReasonCode = 'Negligence - Service' AND  "
                  "CONVERT(DateCreated, Date) >= '2019-02-03' GROUP by StoreName, Date")


databases = my_cursor.fetchall()
fp = open('C:\#Emailproject/emailtest.csv', 'w')
attach_file = csv.writer(fp)
attach_file.writerows(databases)
fp.close()

# My email
fromaddr = "******************@gmail.com"
# EMAIL ADDRESS YOU SEND TO
toaddr = "**********@gmail.com"

msg = MIMEMultipart()

msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "Test Email Data"  # SUBJECT OF THE EMAIL

body = "Hello, Please see the attched report for  week. Thank you, ****"

msg.attach(MIMEText(body, 'plain'))

filename = "Test Email.csv"  # NAME OF THE FILE WITH ITS EXTENSION
attachment = open("C:\#Emailproject/emailtest.csv", "rb")  # PATH OF THE FILE

part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)

msg.attach(part)

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr, "***********")  # YOUR PASSWORD
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()

示例结果图像 -

在此处输入图片说明

非常感谢

纳西姆

避免空行试试这个


fp = open('C:\#Emailproject/emailtest.csv', 'w', newline='')


添加标题行

attach_file.writerow(["date", "address", "col3"])
attach_file.writerows(databases)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档