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

python 读取mysql数据至csv文件中,并发送邮件的更多相关文章

  1. C# 将List中的数据导入csv文件中

    //http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中   将数 ...

  2. Jmeter beanshell把数据写入csv文件中,最后清除csv数据

    有时候我们需要使用jmeter去结合csv文件去做一些简单的数据驱动处理: 例如把数据库数据黏贴到csv文件中或者把网页上的数据填入到csv文件中: 直接我一般是用手自己黏贴复制过csv文件中,比较麻 ...

  3. python 读取二进制数据到可变缓冲区中

    想直接读取二进制数据到一个可变缓冲区中,而不需要做任何的中间复制操作.或者你想原地修改数据并将它写回到一个文件中去. 为了读取数据到一个可变数组中,使用文件对象的readinto() 方法.比如 im ...

  4. Jmeter自动化测试 数据驱动测试,将数据存入csv文件中来调用,或将数据存在DB中进行调用

    1. 将测试的用例名称,测试请求方式,测试链接,预置数据,断言等都放到excel中,然后转成csv格式,在用Jmeter带的csv数据配置文件导入 运行之前将线程组中配置,线程数设置为1,循环的次数设 ...

  5. python提取百万数据到csv文件

    转自:http://www.2cto.com/kf/201311/258112.html 今天有需求,需要把系统所有用户注册的id和邮箱等信息导出来提供给他们,在mysql里面count了下,大概有3 ...

  6. SQL SERVER利用BCP命令在命令行下导出数据到csv文件中

    bcp "select * from (DBNAME).dbo.qt_trace where User_1 is not null" queryout c:\%date:~6,4% ...

  7. MySQL添加CSV文件中的数据

    一.MySQL添加csv数据 此问题是前几天整理数据的时候碰到的,数据存在 CSV文件中(200多万记录),通过python 往数据库中导入太慢了,后来使用MySQL 中自带的命令 LOAD DATA ...

  8. python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

    python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...

  9. CSV文件数据如何读取、导入、导出到新的CSV文件中以及CSV文件的创建

    CSV文件数据如何读取.导入.导出到新的CSV文件中以及CSV文件的创建 一.csv文件的创建 (1)新建一个文本文档: 打开新建文本文档,进行编辑. 注意:关键字与关键字之间用英文半角逗号隔开.第一 ...

随机推荐

  1. Compiling U-Boot

    To configure and build U-Boot for a target board "cd" to, or copy the source tree to somew ...

  2. 备份LeetCode OJ自己编写的代码

    常泡LC的朋友知道LC是不提供代码打包下载的,不像一般的OJ,可是我不备份代码就感觉不舒服- 其实我想说的是- 我自己写了抓取个人提交代码的小工具,放在GitCafe上了- 不知道大家有没有兴趣 ht ...

  3. 统一各浏览器CSS 样式——CSS Reset

    html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, ...

  4. BZOJ4039 : 集会

    将曼哈顿距离转化为切比雪夫距离,即: $|x_1-x_2|+|y_1-y_2|=\max(|(x_1+y_1)-(x_2+y_2)|,|(x_1-y_1)-(x_2-y_2)|)$ 那么每个点能接受的 ...

  5. NOIP不开心记(不开心的东西肯定不能给别人看!)

    写在前面的.. noip之后一直很想写一下什么的.. 老师:这就是你逃晚自习来机房的原因?? Day 0 坐了好久的车来到GZ.. 年年都是GZ.. sb酒店垃圾的要死.. 路上都是杀马特.. 隔壁还 ...

  6. PAT Basic 1005

    1005 继续(3n+1)猜想 (25 分) 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程 ...

  7. vmware提示请卸载干净再重新安装的解决办法

    结论:删掉   HKEY_LOCAL_MACHINE\\SOFTWARE\Wow6432Node\VMware, Inc.    就可以了. ----------------------------- ...

  8. 11-20 bom 浏览器对象模型

    1.window.open(url,ways) url 是打开的网页地址 ways 打开的方式 _self 2.window.close() 3.浏览器用户信息:Window.navigator 4. ...

  9. flask之信号和mateclass元类

    本篇导航: flask实例化参数 信号 metaclass元类解析 一.flask实例化参数 instance_path和instance_relative_config是配合来用的:这两个参数是用来 ...

  10. VBA 判断一个TXT编码方式,再创建一个新的文件,复制数据进去

    如题,先读取一个文本文件判断编码(Unicode  ANSI),就这两种编码然后将txt导入到excel表中,最后处理完成,再创建一个相同编码,不同文件名的txt文件,把新数据放进去 Sub test ...