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

1、题目要求

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

2、不专业讲解

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

3、项目结构

在这里插入图片描述

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、运行结果

控制台输出
在这里插入图片描述

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章