python+MySQL,将database_asset的表格(5073个证券2022年的交易日数据)全部导入数据库,并将他们合并,合并后,将表格的主键设置为证券代码、日期组成的联合主键。之二。
python+MySQL,将database_asset的表格(5073个证券2022年的交易日数据)全部导入数据库,并将他们合并,合并后,将表格的主键设置为证券代码、日期组成的联合主键。
直接上代码,注释很清楚。
# -*- coding: UTF-8 -*-
import pymysql#导入包
import datetime
import os
db=pymysql.connect(host='localhost',port=3306,user='root',password='****',db='database_asset')#数据库链接
cur=db.cursor()#创建游标,就是用来执行sql语句的
now_time = datetime.datetime.now()#开始运行时间
print(now_time)#开始运行时间显示在屏幕上
n=0#用n记录导入文件数
# filePath = input('请输入文件所在路径:')#通过屏幕输入指定csv文件所在文件夹。
file = r'D:\database_asset'#指定csv文件所在文件夹,这之前可以用input命令,通过屏幕输入指定csv文件所在文件夹。CSDN上找的,忘记出自哪位大咖了。
for root, dirs,files in os.walk(file):
if root != file:
break
for file in files:
path = os.path.join(root, file)#绝对路径csv文件
d=path[18:24]#证券代码
cur.execute("load data infile %s into table gpdata fields terminated by ',' lines terminated by '\n' ignore 1 rows",path)#导入数据
db.commit()
cur.execute("update gpdata set dm=%s where dm is null", d)#添加证券代码
n+=1
print('\b' * 40 + ("已导入"+str(n)+"个文件,"+ str(n * 242)+"条数据!"+"已运行:"+str(datetime.datetime.now()-now_time)).ljust(20), end='')
cur.execute("delete from gpdata WHERE open is null")#删除开盘价为空的记录
cur.execute("alter table gpdata modify dm char(6) first")#将证券代码字段调整到最前面
db.commit()
cur.execute("alter table gpdata modify column date date not null")#将交易日期字段类型改为日期型,并设为非空字段,否则不让设置为主键。
cur.execute("alter table gpdata add primary key(dm,date)")#主键设置为证券代码、日期组成的联合主键
print("")
new_time = datetime.datetime.now()#新的时间,就是脚本运行结束的时间哈
print('开始时间:',now_time,'结束时间:',new_time,'共用时:',new_time-now_time,'共导入:',n,'个文件',n*242,'条数据,累死我了!!!')
db.commit()#“增”、“删”、“改”后提交事务,个人理解为“增”、“删”、“改”后刷新数据库
db.close()#关闭链接
end#完成任务,结束!!!
5073个csv格式证券交易数据文件

代码运行过程,期间显示开始运行时间,监测已经导入多少个文件和多少条数据记录以及代码运行时间。

代码运行结束,显示代码开始运行时间,代码运行结束时间,代码运行耗时,共导入多少个文件,多少条数据记录。

共运行了1小时34分钟,时间都耽误在添加证券代码上了cur.execute("update gpdata set dm=%s where dm is null", d),哪位大咖有好办法,此处帮忙优化一下,谢谢。
代码运行后,数据表结构。

代码运行后的数据。

代码运行后,经导入、整理共1227666条数据。

数据的逻辑备份。

相关推荐
python将excel数据导入数据库
一个简单的python程序带图形化界面用于读取excel将其中数据导入数据库
Python如何读取MySQL数据库表数据
主要为大家详细介绍了Python如何读取MySQL数据库表数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
excel表格数据导入mysql数据库的两种方法
excel表格数据导入mysql数据库的两种方法 ,我研究了很长的时间,绝对能用,不信你会后悔的,真的
Python-Excel一键导入MySQL数据库MySQL数据库一键读取到Excel表格
Excel一键导入MySQL数据库,MySQL数据库一键读取到Excel表格
PyCharm MySQL可视化Database配置过程图解
在进行数据库相关的模块学习时,通常有人推荐使用Navicat,确实强大方便,可惜是收费的。这里推荐一个在社区版PyCharm里面直接可视化访问数据库的方法,开源免费。 在社区版的PyCharm中,可以通过下载Database Navigator的插件,实现可视化。下面是详细步骤: 1. 在菜单file中找到Settings,如下 2. 进入Plugins,搜索‘Database Navigator’,如下图,然后安装。 3. 装好后,菜单栏会多出一个菜单‘DB Navigator’,如下: 4. 点击这个菜单,然后同时按下Ctrl+Shift+C,然后确定,进入数据库连接界面: 5.


