python操作MySQL--实例
有一段时间,没更新,但这都不是自己懒惰的借口,希望自己能坚持下去;
python可以操作MySQL 数据库,需要安装的是MySQL-python,并且实现读入excel表及生成excel 表,则需要xlrd及xlwt这两个python 模块;
1、安装MySQL-python:
yum -y install MySQL-python #########在python 程序导入模块时名字为MySQLdb
2、安装excel两个模块:
pip install xlrd xlwt ####pip 默认使用的是国外的镜像,网速较慢,可以更换为国内的镜像,临时则使用 -i https://pypi.douban.com/simple/
3、以下代码中其它的模块均为内置模块;
4、导入excel的模板内容如下:
第一行所有列有数据,第二行部分列有数据
1 #!/usr/bin/env python
2 #coding:utf-8
3 import MySQLdb,sys,xlwt,subprocess,datetime,xlrd,time
4 reload(sys) #######以下两行解决了写excel 时中文字符的问题
5 sys.setdefaultencoding('utf-8')
6 class Mysql_Select(object):
7 def __init__(self):
8 pass
9
10 def yes_Format(self):
11 child = subprocess.Popen("date +'%Y-%m-%d %H:%M:%S' -d '-1 days'",shell=True,stdout=subprocess.PIPE)
12 yes_time = child.stdout.read()
13 return yes_time ############返回前一天的日期,供Mysql 语句使用
14
15 def mysql_Connect_Status(self,date_yesterday):
16 conn = MySQLdb.connect(user='',passwd='',host='',charset='utf8')
17 cur = conn.cursor()
18 machines_status = cur.fetchmany(cur.execute("select bdass.salesOrder.orderNum,bdass.salesOrder.salesTime,bdas s.machines.name,bdass.salesOrder.goodsCode,bdass.salesOrder.salesPrice from bdass.salesOrder,bdass.machines where bda ss.salesOrder.salesTime > '%s' and bdass.salesOrder.machineId = bdass.machines.clientId "%date_yesterday))
19 cur.close()
20 conn.close()
21 return machines_status #############查询生产服务器的Mysql的表
22
23 def excel_Read(self,machines_status):
24 W=xlwt.Workbook('utf8') #########创建一个excel写对象
25 ws = W.add_sheet('Sheet1') #########增加一个sheet
26 ws.col(0).width = 9999 ##########表格的列属性
27 ws.col(1).width = 6666
28 ws.col(20).width = 6666
29 ws.col(43).width = 6666
30 ws.col(44).width = 6666
31 ws.col(45).width = 6666
32 ws.col(65).width = 9999
33 ws.col(103).width = 6666
34 ws.col(104).width = 6666
35 module_data = xlrd.open_workbook('sales_module.xls') #######创建一个excel读对象
36 table = module_data.sheet_by_index(0) #########读取第一个sheet
37 ncols = table.ncols #########表的所有列
38 for raws in xrange(len(machines_status)): ############## 写模板里的固定值;
39 for values in xrange(ncols):
40 if values not in [0,1,20,43,44,45,53,54,55,56,57,59,65,103,104]:
41 ws.write(raws+1,values,label=table.cell(1,values).value)
42
43 for values in xrange(ncols): ##############写模板的第一行
44 ws.write(0,values,label=table.cell(0,values).value)
45
46 for raw in xrange(len(machines_status)): ###########写订单的数据;
47 ws.write(raw+1,0,label=machines_status[raw][0]) #订单号
48 ws.write(raw+1,1,label=str(machines_status[raw][1]).split(' ')[0]) #订单日期
49 ws.write(raw+1,20,label=machines_status[raw][2]) #表头备注
50 ws.write(raw+1,43,label=str(machines_status[raw][1]).split(' ')[0]) #表头预发货日期
51 ws.write(raw+1,44,label=str(machines_status[raw][1]).split(' ')[0]) #表头预完工日期
52 ws.write(raw+1,45,label=str(machines_status[raw][3])) #存货编码
53 ws.write(raw+1,53,label=str(machines_status[raw][4])) #报价
54 ws.write(raw+1,53,label=str(machines_status[raw][4])) #报价
54 ws.write(raw+1,54,label=str(machines_status[raw][4])) #含税单价
55 ws.write(raw+1,55,label=str(machines_status[raw][4] - round(machines_status[raw][4]/1.17*0.17,2))) #金额
_原币_无税
56 ws.write(raw+1,56,label=str('%.2f' %(machines_status[raw][4]/1.17*0.17))) #税额
57 ws.write(raw+1,57,label=str(machines_status[raw][4])) #价税合计
58 ws.write(raw+1,59,label=str(machines_status[raw][4] - round(machines_status[raw][4]/1.17*0.17,2))) #无税
_单价
59 ws.write(raw+1,65,label=str(machines_status[raw][0])) #备注
60 ws.write(raw+1,103,label=str(machines_status[raw][1]).split(' ')[0]) #预完工日期
61 ws.write(raw+1,104,label=str(machines_status[raw][1]).split(' ')[0]) #预发货日期
62
63 W.save('模板生成.xls') ########最后保存并命名
64
65
66 def copy_Remote(self): #####传送到远程服务器
67 child = subprocess.Popen("scp -P 7777 模板生成.xls server_net:/share/技术/",shell=True,stdout=subprocess.PIPE )
68
69 system = Mysql_Select()
70 if __name__ == '__main__':
71 yes_time = system.yes_Format()
72 machines_status = system.mysql_Connect_Status(yes_time)
73 system.excel_Read(machines_status)
74 system.copy_Remote()
最后代码完成并生成的excel表如下:
代码部分,还有待优化,加油;
python操作MySQL--实例的更多相关文章
- Python操作Mysql实例代码教程在线版(查询手册)
本文介绍了Python操作MYSQL.执行SQL语句.获取结果集.遍历结果集.取得某个字段.获取表字段名.将图片插入数据库.执行事务等各种代码实例和详细介绍,代码居多,是一桌丰盛唯美的代码大餐 实 ...
- Python操作Mysql实例代码教程在线版(查询手册)_python
实例1.取得MYSQL的版本 在windows环境下安装mysql模块用于python开发 MySQL-python Windows下EXE安装文件下载 复制代码 代码如下: # -*- coding ...
- python操作mysql实例
#coding=utf-8 import MySQLdb # 打开数据库连接 db = MySQLdb.connect(host='localhost',user='root',passwd='',d ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- python操作mysql数据库增删改查的dbutils实例
python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...
- Python操作MySQL数据库9个实用实例
用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1.2.3.win32-py2.7.exe MySQL-pytho ...
- Python 操作 MYSQL
本文介绍了 Python 操作 MYSQL.执行 SQL 语句.获取结果集.遍历结果集.取得某个字 段.获取表字段名.将图片插入数据库.执行事务等各种代码实例和详细介绍,代码居多, 是一桌丰盛唯美的代 ...
- Python开发【第十一篇】:Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 1.原生模块pymsql. 2.ORM框架SQLAchemy. pymsql pymsql是Python中操作MySQL的模块,其使用方法和MyS ...
- Python操作MySQL案例
最近都在学习Python代码,希望学会Python后,能给我带来更高的工作效率,所以每天坚持学习和拷代码,下面是一个Python操作MySQL的一个实例,该实例可以让更多的人更好了解MySQLdb模块 ...
- python连接mysql实例分享_python
示例一 #coding=UTF-8 import sys import MySQLdb import time reload(sys) sys.setdefaultencoding('utf-8') ...
随机推荐
- JS中使用reconnecting-websocket实现websocket断开自动重新连接
这里用了第三方的js 官方地址:https://github.com/joewalnes/reconnecting-websocket 引入js reconnecting-websocket.min. ...
- 总结Vue第三天:模块化和webpack模块化打包:
总结Vue第三天:模块化和webpack模块化打包: 一.❀ 模块化 [导入import-----导出export] 1.为什么需要模块化? JavaScript 发展初期,代码简单地堆积在一起,只要 ...
- VS2015 up3激活key
密钥 专业版:HMGNV-WCYXV-X7G9W-YCX63-B98R2 企业版:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV
- 【九度OJ】题目1061:成绩排序 解题报告
[九度OJ]题目1061:成绩排序 解题报告 标签(空格分隔): 九度OJ [LeetCode] http://ac.jobdu.com/problem.php?pid=1061 题目描述: 有N个学 ...
- 2021 年终总结:内推40人、全网15万粉、Code Runner 3000万下载、发扬WLB、进军视频领域
时光飞逝,岁月如梭,蓦然回首,已是年底. 感觉写 2020 年终总结还是在不久之前.转眼间,2021 已经接近尾声了.是时候来写写 2021 年的年终总结了. 内推 40 人 2019 年,内推了 2 ...
- ZOJ 3870:Team Formation(位运算&思维)
Team Formation Time Limit: 2 Seconds Memory Limit: 131072 KB For an upcoming programming contest, Ed ...
- Adversarial Self-Supervised Contrastive Learning
目录 概 主要内容 Linear Part 代码 Kim M., Tack J. & Hwang S. Adversarial Self-Supervised Contrastive Lear ...
- A ROBUST KERNEL PCA ALGORITHM
目录 引 主要内容 问题一 问题二 Lu C, Zhang T, Du X, et al. A robust kernel PCA algorithm[C]. international confer ...
- 一个老菜鸟的年度回忆 & 智能工厂奋斗的第三年,可能有你值得借鉴的
岁月蹉跎,寒冬的夜晚仍伏案疾书,见论坛中有诸多大神已经开始了一年的总结,突然安奈不住心中的躁动,也想为这今年的奋斗留下只言片语,没有年初的目标总结,没有未来的展望,就想作为一篇日记记录今年项目精力,为 ...
- 读书笔记markdown模板
读书笔记 书名 作者 出版社 阅读日期 书籍背景 书摘/ 笔记 批注 总结& 收获 读完每一本书,把书中的知识转化为「自己的智慧」,才是最扎实的收获- 他山之石 摘录相关精彩书评-