Python批量读取文件夹中Excel文件并上传至MySQL

本文介绍了一种使用Python将多个Excel文件中的数据批量导入MySQL数据库的方法,涉及xlrd和pymysql模块的使用,实现了从指定目录下读取所有支持格式的Excel文件,并将数据插入到数据库中。
# -*- coding: utf-8 -*-
# @Author : kai xu
# @Contact: xukai93@foxmail.com
# @File   : Main.py
# @Time   : 2019/6/28   23:19
# @Desc   :不支持CSV格式,仅支持xlsm,xls,xlsx格式
import xlrd
import pymysql
import os
import datetime
from time import sleep


def listdir(path): #传入根目录
    file_list = []
    for file in os.listdir(path):
        file_path = os.path.join(path, file)
        # print(file_path)#获取绝对路径
        file_list.append(file_path)
        # print(file_list)
    return file_list#返回Excel文件路径列表


for x in listdir("D:\Temp\Temp"):
    data = xlrd.open_workbook(x)
    table = data.sheets()[0]
    t = table.col_values(1)
    nrows = table.nrows
    ops = []
    for i in range(1,nrows):
        r1 = table.row_values(i)
        ops.append((x[13:],r1[0],r1[1],r1[2]))
    conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='pachong', charset='utf8mb4')
    try:
        cur = conn.cursor()
        sql='insert into `doudouche` values("%s","%s","%s","%s")'  #原来SQL是这么tm写的啊!
        # sql="insert into `doudouche` values('%s','%s','%s','%s')" #错误示范
        # conn.ping(reconnect=True)
        cur.executemany(sql, ops)
        conn.commit()
        print(str(x)+":数据已成功读取并上传至数据库--"+str(datetime.datetime.now())[0:22])
        cur.close()
        conn.close()
    except Exception as e:
        print(e)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值