#python批量读取excel csv文件插入mysql数据库

import os
import csv
import argparse
import pymysql
import sys class ConnectionDatabase(object):
# 连接mysql数据库
def __init__(self, ip, user_name, passwd, db, char='utf8'):
self.ip = ip
# self.port = port
self.username = user_name
self.passwd = passwd
self.mysqldb = db
self.char = char self.MySQL_db = pymysql.connect(
host=self.ip,
user=self.username,
password=self.passwd,
database=self.mysqldb,
charset=self.char) def mysql_findList(self, sql):
cursor = self.MySQL_db.cursor()
MySQL_sql = sql
results = None
if not cursor:
raise (NameError, "数据库连接失败")
try:
# 执行SQL语句
cursor.execute(MySQL_sql)
# 获取所有记录列表
results = cursor.fetchall()
except Exception as e:
print(e)
self.MySQL_db.close()
if results:
return results
else:
return None # 数据增删改查(sqlserver)
def mysql_exe_sql(self, sql, params):
cursor = self.MySQL_db.cursor()
MySQL_sql = sql
result = 0
if not cursor:
raise (NameError, "数据库连接失败")
try:
# 执行SQL语句
self.MySQL_db.ping(True)
cursor.execute(MySQL_sql, params)
result = cursor.rowcount
except Exception as e:
print(e)
self.MySQL_db.rollback()
self.MySQL_db.close() return result > 0 '''
提交数据
'''
def commitData(self):
try:
self.MySQL_db.commit()
except Exception as e:
print(e) '''
关闭数据库连接
'''
def closeConn(self):
if self.MySQL_db:
self.MySQL_db.close() '''
读取文件夹下的csv文件
'''
def readAllFiles(filePath):
fileList = os.listdir(filePath)
i = 0
for file in fileList:
path = os.path.join(filePath, file)
if os.path.isfile(path):
file = open(path, 'r', encoding='utf-8')
print(path)
i += 1
print("插入第>>>>", i, ">>>>数据表")
analysisWorkflowCsv(file)
pass
else:
readAllFiles(path) def analysisWorkflowCsv(file):
csvFile = csv.reader(file)
# 读取一行,下面的reader中已经没有该行了
# head_row = next(csvFile)
# print(head_row)
__conn = ConnectionDatabase(ip="localhost", user_name="root", passwd="", db="mydb", char="utf8")
counter = 0
for row in csvFile:
data = {}
# 获取excel内需要的数据,从0开始,根据导入的csv文件的列数来决定data的容量
data['a'] = row[0]
data['b'] = row[1]
data['c'] = row[2]
# data['d'] = row[3]
# data['e'] = row[4]
# data['f'] = row[5]
# data['g'] = row[6]
# data['h'] = row[7]
# data['i'] = row[8]
# data['j'] = row[9]
if insert_data(__conn, data):
counter += 1
if counter % 1000 == 0:
__conn.commitData()
print("已经插入工作流数据: %d 条。" % counter)
__conn.commitData()
__conn.closeConn() '''
插入工作流程数据
'''
def insert_data(__conn, data):
# 在mysql建立表,字段名可以根据需要设置,也可以按a,b,c这样的简单记录也可以。跟data容量的一一对应。
# __sql = '''
# INSERT INTO `mydb`.`tbl_test` (
# `a`,
# `b`,
# `c`,
# `d`,
# `e`,
# `f`,
# `g`,
# `h`,
# `i`,
# `j`
# )
# VALUES
# (
# %s,
# %s,
# %s,
# %s,
# %s,
# %s,
# %s,
# %s,
# %s,
# %s
# )
# ''' __params = (
data['a'], data['b'],
data['c'],
data['d'],
data['e'],data['f'],data['g'],data['h'],data['i'],data['j']
)
# print(__sql % __params)
return __conn.mysql_exe_sql(__sql, __params) if __name__ == "__main__":
# 文件所在的文件夹父路径,按文件夹下面的文件批量导入
testFilePath = "F:/excel2Mysql/"
readAllFiles(testFilePath)

python批量读取excel csv文件插入mysql数据库的更多相关文章

  1. python 从csv文件插入mysql数据库

    一个工作遇到的问题,将excel文件的内容插入到mysql数据库中. 总体思路是 excel文件-->转换成csv文件-->csv文件读取-->读取数据插入mysql数据库 用到py ...

  2. Spark1.6.2 java实现读取json数据文件插入MySql数据库

    public class Main implements Serializable { /** * */ private static final long serialVersionUID = -8 ...

  3. 使用pandas中的raad_html函数爬取TOP500超级计算机表格数据并保存到csv文件和mysql数据库中

    参考链接:https://www.makcyun.top/web_scraping_withpython2.html #!/usr/bin/env python # -*- coding: utf-8 ...

  4. java读取Excel文档插入mysql

    /** * 读取excel插入myslq */package com.excel; import java.io.BufferedInputStream;import java.io.File;imp ...

  5. Linux 用 shell 脚本 批量 导入 csv 文件 到 mysql 数据库

    前提: 每个csv文件第一行为字段名 创建的数据库字段名同csv 文件的字段名 1. 批量导入 多个 csv 文件 for file in ./*.csv;do mv $file tablename. ...

  6. python脚本 读取excel格式文件 并进行处理的方法

    一.安装xlrd模块 pip install xlrd 二.读取excel文件 try: excel_obj = xlrd.open_workbook("文件路径") except ...

  7. java批量读取多个文件并存入数据库

    有时候服务运行的日志文件,需要统计分析,但数据量很大,并且直接在文件中看很不直观,这时可以将文件中的内容导入到数据库,入库后的数据就可以按照需求进行统计分析了. 这个是以服务器的访问日志作为示例,一个 ...

  8. JAVA读取CSV文件到MySQL数据库中

    maven项目pom配置: <dependency> <groupId>net.sourceforge.javacsv</groupId> <artifact ...

  9. Spark1.6.2 java实现读取txt文件插入MySql数据库代码

    package com.gosun.spark1; import java.util.ArrayList;import java.util.List;import java.util.Properti ...

  10. [转] JAVA读取excel数据(插入oracle数据库)

    原文地址:http://blog.csdn.net/zczzsq/article/details/16803349 本实例做的是读取execl(只能读取.xls的execl,即只能读取03版的),如果 ...

随机推荐

  1. [Go] 浅谈 Golang Chan 通信与死锁:all goroutines are asleep - deadlock

    Channel创建方式: var c1 chan [value type] c1 = make([channel type] [value type], [capacity]) [value type ...

  2. [FAQ] 阿里云一口价域名购买之后在哪里看

    进入控制台,产品和服务中找到"域名",进去后在左侧菜单有 "已买到的域名". 如图: Link:https://www.cnblogs.com/farwish/ ...

  3. 阿里云OSS文件上传几种方法(主要是前端)

    目录 零.准备 一.服务端签名后直传 1. 阿里云控制台配置 2. 后端接口开发(PHP) 3. 前端获取签名后上传 二.使用STS临时凭证进行上传 1. 后端接口开发(node) 2. 前端获取临时 ...

  4. Oracle和达梦:根据外键名字查询表名

    根据外键名字查询表名 select * from user_cons_columns cl where cl.constraint_name = '外键名';

  5. RocketMQ 事件驱动:云时代的事件驱动有啥不同?

    前言: 从初代开源消息队列崛起,到 PC 互联网.移动互联网爆发式发展,再到如今 IoT.云计算.云原生引领了新的技术趋势,消息中间件的发展已经走过了 30 多个年头. 目前,消息中间件在国内许多行业 ...

  6. Golang使用正则

    目录 正则在线测试网站 Golang标准库--regexp 相关文章 课程学习地址: 手册地址: dome 正则在线测试网站 https://regex101.com/ Golang标准库--rege ...

  7. Linux — 物理内存管理

    物理内存的组织方式 物理内存是由连续的一页一页的块组成,每个物理页都有页号 每个页由struct page表示,放进数组里--平坦内存模型 SMP和NUMA SMP中,总线会称为瓶颈,因为数据都要经过 ...

  8. Garnet:微软官方基于.NET开源的高性能分布式缓存存储数据库

    前言 前不久Redis宣布从 Redis 7.4 开始,将原先比较宽松的 BSD 源码使用协议修改为 RSALv2 和 SSPLv1 协议,该协议变化意味着Redis不再开源.今天给大家分享一款完全开 ...

  9. EasyUI组件新增方法与事件

    以window组件为例 事件 扩展事件直接定义在options中,可以再初始化组件时定义事件,也可以使用时临时定义事件.这里是组件初始化后在添加的. 使用情景:添加,插入功能.主界面表格分别点击添加和 ...

  10. ​一款开源的.NET程序集反编译、编辑和调试神器

    前言 说到.NET相关的反编译工具大家脑海里第一个想到的工具是什么?ILSpy.dnSpy.还是dotPeek?咱们今天的主要内容是讲讲dnSpyEx(dnSpyEx是dnSpy项目的非官方Fork维 ...