python示例--下载mysql数据库中数据--excel表格,合并表格
用到的知识点
1.mysql连接
2.pandas的concat数据合并
3.路径等
import threading
import requests
import json
import pymysql
from openpyxl import load_workbook
import openpyxl
import os
from configparser import ConfigParser
import time
import sys
import pandas as pd# __file__ #表示文件的名字
# os.path.abspath(__file__) #绝对路径
#软件运行的所在文件夹目录--根目录
BASEDIR=os.path.dirname(os.path.abspath(__file__))
pathfile=os.path.join(BASEDIR,'config','config.ini')
# print(pathfile)def inputdata():# stringss=input("请输入数据格式:'pvm ip:行政区划代码,189.1.1.1:610403,...':").strip()stringss=input("请输入数据格式:'ipaddress:行政区划代码,...':").strip()items=stringss.split(',')# print(items,type(items))pcaddress=['161.20.12.156','161.20.12.112','181.172.11.119','181.172.11.11']for cityitem in items:ip,citycode=cityitem.split(":")#排除一些ip地址# if ip=='161.20.12.156'' or ip=='161.20.12.15'' or ip=='181.172.11.11':if ip in pcaddress:print("IP地址输入问题")sys.exit()if not citycode.startswith('112504'):print("行政区划范围输入问题")sys.exit()#启用多线程进行数据下载工作th=threading.Thread(target=calldownloadcity,args=(ip,citycode))th.start()# print(ip,citycode)# calldownloadcity(ip,citycode)def calldownloadcity(ip,citycodearg):citycode = citycodeargcityaddress = iptry:db = pymysql.connect(host=cityaddress, user="root", passwd="123456", db="dbss")except:print(cityaddress,"连接平台失败,请检查网络!")time.sleep(2)returndownloadCity(citycode,db)# 下载每个地市的文件,采用sql语句+excel表格的方式
def downloadCity(citycode,db):# 这里字符串的解决一定要注意的# sqlcity = "select * from device WHERE gb_id like %s%%"%(citycode)sqlcity = "select * from device WHERE gb_id like '{}%%'".format(citycode)# print(sqlcity)cursor = db.cursor()cursor.execute(sqlcity)wb = openpyxl.Workbook()wbsheet = wb.create_sheet("结果")print(citycode,"数据写入文件中,请稍等....")result = cursor.fetchall()# print(result)for rowdata in result:wbsheet.append(rowdata) # 写入excel表格# print(rowdata)xlsxname ="{}.xlsx".format(citycode)wb.save(xlsxname) # 保存的excel表格cursor.close() # 关闭游标db.close() # 关闭数据库print(xlsxname,"数据写入完成,请到软件目录下获取excel文件")def fludb():pass#合并所有excel表格#合并表格数据是以 191开头 以xlsx结尾的excel表格信息
def concatex():# print(pathfile)filesnames=os.listdir(os.getcwd()) #获取当前目录下所有文件writername=pd.ExcelWriter(r'ALL合成信息表.xlsx') #最终保存文件的名称--最终合成的xlsx文件excel_files=[] #接入符合要求的excel表格名称for filename in filesnames:if os.path.splitext(filename)[1]=='.xlsx' and filename.startswith('191'): #后缀以'.xlsx'结尾,同时与‘191’开头的文件放入列表excel_files.append(filename)print("合并表格正在进行中,请稍后....:")print(excel_files)mergedflists=[] #存放读取的表格的内容,临时缓冲区作用for excelname in excel_files:excel_content=pd.read_excel(excelname,sheet_name='结果',header=None) #读取每个表格的sheet表为‘结果’的表格信息到列表中mergedflists.append(excel_content)####数据保存=#############pd.concat(mergedflists).to_excel(writername,sheet_name='All合成表信息',index=False)writername.save() #保存信息def tuichu():sys.exit()func_dic = {'1' :inputdata,'2' :concatex,'3' :tuichu,}if __name__ == '__main__':while True:print('''===========功能列表===========1.下载图像资料信息2.合并当前目录下191**开头的所有excel表格-->'ALL合成信息表.xlsx'3.退出''')choice = input('请输入功能编号:').strip()if choice not in func_dic:print("输入正确的编号:")continuefunc_dic.get(choice)()# print("本次录入数据条目是{}:条".format(jc))
python示例--下载mysql数据库中数据--excel表格,合并表格相关推荐
- python怎么批量下载年报_使用Python批量下载Wind数据库中的PDF报告
原标题:使用Python批量下载Wind数据库中的PDF报告 背景 最近小编出于工作需要,准备在Wind金融数据终端批量下载上市公司2019年第一季度业绩预告.通过相关的条件检索,发现其相关数据有近百 ...
- mysql数据库 导入excel_如何在MySQL数据库中导入excel文件内的数据 详细始末
在开发项目的时候通常需要使用数据库,数据库Database是用来存储和管理数据的仓库.下面,我们以MySQL数据库为例来看看如何在数据库中导入excel文件内的数据吧. 操作方法 01 MySQL 打 ...
- Python脚本---在 MySQL数据库中跑批加载多个表的数据
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/45841117 #!/usr/bin/env python # -*- coding:utf ...
- 实现对mysql增删改查_Java语言实现对MySql数据库中数据的增删改查操作的代码
简单说操作的步骤: 1.连接数据库 2.将SQL语句发送到数据库 3.执行SQL语句 这里举个例子: 在一个数据库中有个students表,表中有学号(Id),姓名(Name),性别(Sex),地址( ...
- MySQL数据库中数据表的约束条件
目录 1.primary key :主键约束,用于唯一标识对应的记录 1.单字段主键 2. 复合主键 2.foreign key:外键约束 1.创建表时添加外键约束 2.为已存在的表添加外键约束 3. ...
- python获取mysql表中一列数据_将Python列表插入mySQL数据库中的一列
嗨,我试图在一列中插入一个python列表,但是它总是在语法上给出错误. 这是新手.谢谢你的帮助.谢谢.在from time import time import MySQLdb import url ...
- ORM对mysql数据库中数据进行操作报错解决
在Pycharm中使用ORM语句直接对数据库进行CURD操作时会出现错误: django.core.exceptions.ImproperlyConfigured: Requested setting ...
- mysql 数据库中数据去重,oracle数据库中如何达到像mysql数据库中group by 那种去重的效果..求大神解答...
满意答案 oracle和mysql,group by是由区别的. oracle的gruop by 后跟的必须是select查询出的字段 而且group by语句中select指定的字段必须是" ...
- Python3调用MySQL数据库中的数据
在学习<Designing Machine Learning Systems with Python>(中文名<机器学习系统设计--Python语言实现>)一书中,在第三章第二 ...
最新文章
- 网站图片优化的小技巧分享
- java程序初始化顺序
- sql server:查詢系統表
- C语言和设计模式(装饰模式)
- SQL service
- python以下导入包的格式错误的是_Python结合Tableau,万字长文搞定传统线下连锁店数据分析...
- 计算机考研复试面试题整理
- OpenDDS 编译
- OMNeT 例程 Tictoc15 和 Tictoc16 矢量和标量统计详解
- 颜色空间(一)——RGB色彩模式
- 使用python的视频处理
- mysql存储视频_特殊格式文件(视频、声音等) 在数据库中的存储方式
- 关于数据库工作方面的一些感悟
- 李沐的动手学深度学习环境配置
- 瑞昱rtl8168网卡支持Linux吗,我的集成网卡RTL8111/8168B终于搞定(非常感谢ubuntu中文论坛)...
- 2018桂林J - Stone Game(博弈)
- 卡尔曼滤波室内温度估计
- php Spreadsheet Csv,使用 PhpSpreadsheet 实现读取写入 Execl
- WS2812原理及实现
- ps怎么修改图片上的数字(适用于图片上已有的数字)