python获取mysql中的数据供js调用_python 读取mysql数据至csv文件中,并发送邮件

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

L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vYmxvZy83NjE0NTEvMjAxOTAyLzc2MTQ1MS0yMDE5MDIxODE2Mzg0NjI0Mi0xNDUxMDAzMDgzLnBuZw==.jpg

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

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

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

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

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

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

python提取百万数据到csv文件

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

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

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

MySQL添加CSV文件中的数据

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

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

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

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

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

Jmeter实现从csv文件中随机读取数据

一.需求 参数放在csv文件中,文件格式如下,需求每次从文件中随机读取一行数据. 二.步骤 1.在csv文件中新增加一列,pl 2.新增一个配置原件-随机数,设置如下: 50是文件数据的行数 3.新增 ...

随机推荐

ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘

开篇:经历了上一篇后,我们了解了aspx和服务器控件背后的故事.这篇我们开始走进WebForm状态保持的一大法宝—ViewState,对其刨根究底一下.然后,再 ...

程序员的又一春,微信小程序带来的一个赚钱机遇

微信小程序可能是原生的机遇,在程序员面对微信小程序的恐惧中说其实也是我们程序员创业的春天或者挣外快的一个机遇. 为什么这么说呢?且听我慢慢给你分析 成本角度 你想想,会ios开发的可能只会ios,会安 ...

《Linux内核分析》期末总结

Linux内核设计期中总结 版权声明:本文为博主原创文章,未经博主允许不得转载. 前八周博客汇总及总结 Linux内核设计第一周——从汇编语言出发理解计算机工作原理 我们学习了汇编语言的基础知识,这一 ...

第2章 面向对象的设计原则(SOLID):3_依赖倒置原则(DIP)

3. 依赖倒置原则(Dependence Inversion Principle,DIP) 3.1 定义 (1)要依赖抽象,不要依赖具体的实现类.简单的说就是对抽象(或接口)进行编程,不要依赖实现进行 ...

转:jQuery Ajax 实例 全解析

jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对 ...

ASP.NET CS文件中输出JavaScript脚本的3种方法以及区别

Response.Write 与   Page.ClientScript.RegisterStartupScript 与 Page.ClientScript.RegisterClientScriptB ...

关于lab4实验git+近期出国手续办理

1.下载mit jos lab4时遇到问题(关于git操作,使用,还需进一步理解) 遇到的问题 出现未合并(merge)完全的问题,操作:git add kern/init.c 之后在确认提交 方法二 ...

规范的python编码

规范的 python 编码令人赏心悦目,令代码的表达逻辑更清晰,使得工程代码更容易被维护和交流: 编码规范包括对于代码书写格式的约束,不良语法的禁用和推荐的编码手法,下面做些简要的描述: 1. 代码规 ...

智能合约遇到的小错误 network up to date解决办法

https://blog.csdn.net/qindong564950620/article/details/68933678 说 network up to date .这个错误我刚开始不知道怎么解 ...

深度学习原理与框架-Tensorflow基本操作-实现线性拟合

代码:使用tensorflow进行数据点的线性拟合操作 第一步:使用np.random.normal生成正态分布的数据 第二步:将数据分为X_data 和 y_data 第三步:对参数W和b, 使用t ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值