欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python程序设计:Excel表信息录入数据库

程序员文章站 2022-03-21 10:32:47
...

1、题目要求

将考试文件夹班级成绩录入数据库,采取不同的方式录入,通过统计单位时间录入的学生信息。

2、不专业讲解

日常水文,本代码只使用了一种方式录入。MySQL只需要创建库,不需要创建表,自动生成表。

3、项目结构

python程序设计:Excel表信息录入数据库

4、代码

#!/usr/bin/python

import pandas as pd
from sqlalchemy import create_engine
import time
import os

# TODO:修改成自己的数据库信息
DB_CONFIG = {
    'host': '127.0.0.1',
    'port': '3306',
    'database': 'score_db',
    'user': 'username',
    'password': 'password',
    'tablename': 'sut_score'
}


def pool_db():
    user = DB_CONFIG.get('user')
    password = DB_CONFIG.get('password')
    host = DB_CONFIG.get('host')
    port = DB_CONFIG.get('port')
    database = DB_CONFIG.get('database')
    return create_engine("mysql+pymysql://"+user+":"+password+"@"+host+":"+port+"/"+database, encoding='utf8')


if __name__ == '__main__':
    # xls文件存放相对项目路径
    file_path = './score'
    excel_paths = [os.path.join(file_path, f) for f in os.listdir(file_path)]
    # 建立数据库连接
    engine = pool_db()
    # 获取开始时间戳
    start_time = time.time()
    # 遍历{file_path}目录下的所有xls文件
    for excel_path in excel_paths:
        df = pd.read_excel(excel_path)
        df.to_sql(DB_CONFIG.get('tablename'),con=engine,if_exists='append',index=False)

    # 获取结束时间戳
    end_time = time.time()
    # 打印时间戳差值(取4位小数)
    time = format(end_time - start_time, '.4f')
    print('用时约 ' + str(time) + ' 秒')

5、运行结果

控制台输出
python程序设计:Excel表信息录入数据库

python程序设计:Excel表信息录入数据库