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') ...
随机推荐
- ubantu电脑无法开机修复
重启Ubuntu,随即长按F9进入grub菜单:在grub菜单中,选择recovery mode,回车确认:在Recovery Menu中,选择"Root Drop to root shel ...
- RPA项目POC指南:概念、步骤与技巧
"为什么部署RPA前要进行POC?RPA不是开箱即用吗?" 其实,RPA的实施并非总是一帆风顺,"碰坑"在所难免. 据安永报告显示,30%至50%的初始RPA项 ...
- 【LeetCode】318. Maximum Product of Word Lengths 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 set 位运算 日期 题目地址:https://le ...
- <学习opencv>图像、视频和数据文件
/*=========================================================================*/ // openCV中的函数 /*====== ...
- SpringBoot集成MyBatis-Plus代码生成器
1.说明 本文详细介绍Spring Boot集成MyBatis-Plus代码生成器的方法. 基于一个创建好的Spring Boot工程, 执行MyBatis-Plus提供的AutoGenerator代 ...
- Eclipse提速优化方法
Eclipse提速优化方法 Eclipse运行太慢了,尤其是导入大型maven项目的时候经常动不动就down掉,于是总结了一下Eclipse提速的方法. 1.关闭不常用的工程 打开的项目太多,会严重影 ...
- RSA非对称加密算法实现:C#
RSA是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院工作.RSA ...
- 初识python: 面向对象是个啥?
编程范式:编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 ,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多 ...
- AP原理与最终一致性 强一致性 弱一致性
转载自:http://www.blogjava.net/hello-yun/archive/2012/04/27/376744.html https://blog.csdn.net/c28905453 ...
- 前后端分离 导致的 静态页面 加载 <script type="module" > 报CORS 跨域错误,提示 blocked by CORS policy
1.前言 静态页面 加载 <script type="module" > 报CORS 跨域错误,提示Access to script at ftp:///xxx.js ...