簡體   English   中英

如何將實際位置更改為臨時,添加標頭並從MySQL的Python電子郵件表中刪除csv文件中的空間?

[英]How to change actual location to temporary, add headers and remove space in csv file on Python Email table from MySQL?

我有一個運行MySQL查詢的python代碼,並發送帶有csv附件的電子郵件。 我需要進行以下三項更改。 有人可以幫幫我嗎?

  • 我需要將實際位置更改為臨時位置(我累了,它給我一個錯誤,然后我將它更改為真實位置)
  • 我的結果csv文件中沒有標題。 如何在結果csv上添加標題?
  • 它在每個原始之間放置一個空的原始,我該如何刪除它。

代碼 -

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM