test
代碼:
#coding:utf-8
'''
Created on 2019年2月18日
@author: Administrator
'''
import ConfigParser
import os
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
import MySQLdb
import csv
import codecs
import datetime
import sys
reload(sys)
sys.setdefaultencoding('utf8')
datenow = datetime.datetime.now().strftime("%Y%m%d")
def read_mysql_to_csv(srcDbConn, fileName):
with codecs.open(filename=fileName, mode='w', encoding='GB2312') as f: #encoding='GB2312' 保證寫入csv的中文不是亂碼
write = csv.writer(f, dialect='excel')
srcCursor = srcDbConn.cursor()
sql = "SELECT gscode,ymd,gpcode,f1,f2,f3 FROM quant_stk_calc_d_wxcpnew WHERE gscode = 'wxcpnew' AND ymd = {0} and (f1 > 0 or f2 > 0)".format(datenow)
count = srcCursor.execute(sql)
print count
data = srcCursor.fetchall()
gscode = '指標名稱'
ymd = '信號日期'
gpcode = '股票代碼'
B = 'B點'
S = 'S點'
BStar = 'B點星級'
title = (gscode, ymd, gpcode, B, S, BStar)
write.writerow(title)
for row in data:
print row
write.writerow(row)
def send_mail(fileName):
#讀取配置文件
config = ConfigParser.SafeConfigParser()
batRunningPath = os.path.dirname(os.sys.executable)
batPath = os.path.dirname(os.sys.path[0])
if os.path.exists(batPath + "\SendEmai\config.ini"): #配置文件config.ini的路徑
config.read(batPath + "\SendEmai\config.ini")
else:
config.read(batRunningPath + "\config.ini")
mail_host = config.get("email", "mail_host")
receveAddr = config.get("email", "mail_to_list")
ccAddr = config.get("email", "mail_cc_list")
mail_to_list = receveAddr.split(",") #收件人
mail_cc_list = ccAddr.split(",") #抄送
mail_user = config.get("email", "mail_user") #發件人
mail_pass = config.get("email", "mail_pass") #發件人密碼
mail_sub = "附件測試" #郵件標題
mail_content = "" #正文內容
#創建一個帶附件的實例
msg = MIMEMultipart()
#構造附件1,傳送當前目錄下 test.txt 文件
att1 = MIMEText(open(fileName, 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename="{0}"'.format(fileName)
msg.attach(att1)
#郵件正文內容
msg.attach(MIMEText(mail_content,'plain', 'utf-8'))
msg['Subject'] = Header(mail_sub, 'utf-8')
msg['From'] = mail_user
msg['To'] = ",".join(mail_to_list)
msg['Cc'] = ",".join(mail_cc_list)
receive = mail_to_list
receive.extend(mail_cc_list)
try:
server = smtplib.SMTP_SSL(mail_host)
server.login(mail_user,mail_pass)
server.sendmail(mail_user,receive,msg.as_string())
server.close()
except Exception, e:
print str(e)
if __name__ == '__main__':
charset = "utf8"
#源數據庫
#quant 的數據庫
srcHost_Quant = "172.16.8.110"
srcUse_Quant = "root"
srcPasswd_Quant = "123456"
srcDb_Quant = "quant_test"
srcDbConn_Quant = MySQLdb.connect(srcHost_Quant, srcUse_Quant, srcPasswd_Quant, srcDb_Quant, charset=charset)
fileName = "WXCP_BS_{0}.csv".format(datenow)
read_mysql_to_csv(srcDbConn_Quant, fileName)
send_mail(fileName)
配置文件:config.ini

參見:https://blog.csdn.net/qq_33689414/article/details/78310689
