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') ...
随机推荐
- windows系统中远程登录ubuntu18服务器的桌面
下载:http://www.c-nergy.be/products.html 也可以直接服务器里 wget https://www.c-nergy.be/downloads/xRDP/xrdp-ins ...
- 【LeetCode】541. Reverse String II 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 Java解法 Python解法 日期 题目地址:ht ...
- Windows11实现录屏直播,H5页面直播 HLS ,不依赖Flash
这两天的一个小需求,需要实现桌面实时直播,前面讲了两种方式: 1.Windows 11实现录屏直播,搭建Nginx的rtmp服务 的方式需要依赖与Flash插件,使用场景有限 2.Windows 11 ...
- Laravel 使用 maatwebsite/excel 时长数字出现科学计数法的解决办法
在使用 maatwebsite/excel 包导出Excel的时候,有的单元格里会存放手机号等一大串的数字,这一串数字会被Excel软件处理为科学计数法,在后续处理数据的时候会产生不小的麻烦,一个个去 ...
- 【优雅代码】01-lombok精选注解及原理
[优雅代码]01-lombok精选注解及原理 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点 ...
- Spring练习,使用注解的方式,完成模拟用户的正常登录。要求如下: 使用注解方式开发模拟用户的正常登录。
相关 知识 >>> 相关 练习 >>> 实现要求: 在该实践案例中,使用注解的方式,完成模拟用户的正常登录. 要求如下: 使用注解方式开发模拟用户的正常登录. 实现 ...
- 使用 jQuery 选择器获取页面元素后,利用 jQuery 对象的 css() 方法设置其样式。
查看本章节 查看作业目录 需求说明: 使用 jQuery 选择器获取页面元素后,利用 jQuery 对象的 css() 方法设置其样式. 要求如下: 点击页面的"更改样式"按钮后, ...
- Java面向对象程序设计笔记 • 【目录】
持续更新中- 我的大学笔记>>> 章节 内容 实践练习 Java面向对象作业目录(作业笔记) 第1章 Java面向对象笔记 • [第1章 面向对象] 第2章 Java面向对象笔记 • ...
- .NET 编码的基础知识
.NET 编码的一些基本概念和分析 简单的类型概念 Hex (16进制) byte 字节 范围是:0~255,二进制下的范围就是00000000~11111111,相当于1字节. byte[] 字节数 ...
- 解决windows update失败,正在还原的问题
其实这个不算问题,等上几个小时,还原完毕就好了,不过也有快速解决的办法. 所需工具:U盘.光盘等可以进入PE系统的工具,dism++软件 1.下载dism++工具,根据你的系统,选择使用32位还是64 ...