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') ...
随机推荐
- JAVA把InputStream 转 字节数组(byte[])
import org.apache.commons.io.IOUtils; byte[] bytes = IOUtils.toByteArray(inputStream); 如果没有这个包 就加下依赖 ...
- IDEA中springboot项目添加yml格式配置文件
1.先创建application.properties 文件,在resources文件夹,右键 new -> Resource Bundle 如下图所示,填写名称 2.生成如下图所示文件 3. ...
- JAVA微信支付——企业付款(企业向微信用户个人付款、转账)
本地开发环境支付回调调试方法可以参考:https://www.cnblogs.com/pxblog/p/11623053.html 需要自行引入相关依赖 官方文档地址:https://pay.weix ...
- 【LeetCode】面试题 16.11. 跳水板 Diving Board (Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 数学 日期 题目地址:https://leetcode ...
- 【LeetCode】906. Super Palindromes 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 BFS解法 相似题目 参考资料 日期 题目地址:ht ...
- 【LeetCode】304. Range Sum Query 2D - Immutable 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 预先求和 相似题目 参考资料 日期 题目地址:htt ...
- 【LeetCode】486. Predict the Winner 解题报告(Python)
[LeetCode]486. Predict the Winner 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: ht ...
- 【LeetCode】429. N-ary Tree Level Order Traversal 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:BFS 方法二:DFS 参考资料 日期 题目 ...
- spoj-SUBSUMS - Subset Sums
SUBSUMS - Subset Sums Given a sequence of N (1 ≤ N ≤ 34) numbers S1, ..., SN (-20,000,000 ≤ Si ≤ 20, ...
- Java Web大作业——编程导航系统
title: Java Web大作业--编程导航系统 categories: - - 计算机科学 - Java abbrlink: 40bc48a1 date: 2021-12-29 00:37:35 ...