python实现LOAD DATA INFILE

实现代码如下,注释详解
里面的sql语句是通用的

class Infile():def __init__(self):self.flag = 1def do_load_data_infile(self, filepath=None, filename=None):# 命令传参try:csv_filepath = filepath  # csv文件路径 其实可以和文件名写在一起,看你传参需求csv_filename = filename  # csv格式的文件database = "dbname"  # mysql数据库名dbnametable_name = csv_filename  # mysql表名,假设无表用来建表的名称#打开csv文件file = open(csv_filepath + '/' + csv_filename , 'r',encoding='utf-8')#读取csv文件第一行字段名,创建表reader = file.readline()b = reader.split(',')colum = ''for a in b:colum = colum + a + ' varchar(255),'colum = colum[:-1]#编写sql,create_sql负责创建表,data_sql负责导入数据table = 'create table if not exists ' + table_name + ' ' + '(' + colum + ')' + ' DEFAULT CHARSET=utf8'# print(table_name)data = " load data local infile '" \+ csv_filepath + "/" \+ csv_filename + "'" + \" replace into table "+ database +"." \+ table_name + \" FIELDS TERMINATED BY ','" \" LINES TERMINATED BY '\\r\\n' " \" IGNORE 1 LINES; "  # " LINES TERMINATED BY '\\r\\n' " \# 连接到mysql,主要一定要加上local_infile=1参数,否则会报错的# print('load data local infile ', data)    #load data infile语句,从本地上传所以加local# load data infile 测试代码段conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db=database, local_infile=1) #本地测试用cursor = conn.cursor()cursor.execute('set names utf8')cursor.execute('set character_set_connection=utf8')cursor.execute(table)  #执行建表语句cursor.execute(data)  #执行数据上传语句conn.commit()cursor.close()conn.close()except Exception as e:print(e.args)traceback.print_exc()if __name__ == '__main__':parent_dir = 'C:/Users/Administrator/Desktop/csvfile' #注意'/'df = Infile() # 实例化filelist = os.listdir(parent_dir)   #csv文件所在文件夹所有文件列表# print(filelist)for i in filelist:  # 遍历所有后缀名为csv的文件执行load data infileprint(i)if i.split('.')[-1] == 'csv':# df.Thread_csv(i)df.do_load_data_infile(parent_dir,i)

Python实现LOAD DATA INFILE相关推荐

  1. Python MySQL利用load data infile加载大文件入表

    有时候我们需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用MySql Load data infile导入文件的形式导入数据,这样可大大缩短数据导入时间. ...

  2. mysql load data on duplicate_带有ON DUPLICATE KEY UPDATE的MySQL LOAD DATA INFILE

    慕勒3428872 这些步骤可用于模拟此功能:1)创建一个新的临时表.CREATE TEMPORARY TABLE temporary_table LIKE target_table;2)(可选)从临 ...

  3. tp5大数据批量导入mysql_TP5框架下MySQL通过LOAD DATA INFILE批量导入数据详细操作

    LOAD DATA INFILE 语句用法 参考手册 本文语句参数使用默认值 PHP: TP框架环境// 定义文件路径 $file_path = 'LOAD_DATA_LOCAL_INFILE.txt ...

  4. tp5 excel 导入 mysql_TP5框架下MySQL通过LOAD DATA INFILE批量导入数据详细操作

    LOAD DATA INFILE 语句用法 参考手册 本文语句参数使用默认值 PHP: TP框架环境// 定义文件路径 $file_path = 'LOAD_DATA_LOCAL_INFILE.txt ...

  5. MySQL: load data infile 需要注意的点

    load data infile 批量将文本导入到mysql的表中.主要是为了加快导入记录的速度. ---给个例子: 1.文本如下 t0.txt: "我爱你","20&q ...

  6. [整理]MySql批量数据导入Load data infile解决方案

    有时候我们需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用MySql Load data infile导入文件的形式导入数据,这样可大大缩短数据导入时间. ...

  7. 为啥mysql的load这么快_mysql – 为什么’LOAD DATA INFILE’比普通的INSERT语句更快?...

    LOAD DATA INFILE和扩展INSERT各有其独特的优势. LOAD DATA INFILE设计用于在单个操作中大量加载表格数据以及铃声和口哨声,以执行以下操作: >跳过初始线 > ...

  8. mysql load data into_MySQL 之 LOAD DATA INFILE 快速导入数据

    SELECT INTO OUTFILE > help select; Name:'SELECT'Description: Syntax:SELECT [ALL | DISTINCT | DIST ...

  9. mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式)

    mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式) 首先将要导入的数据文件top5000W.txt放入到数据库数据目录/var/local/mysql/data/${d ...

最新文章

  1. java使用sigar监控服务器
  2. 开课啦! dubbo-go 微服务升级实战
  3. C++11 initializer_list 和 Range-based for loop 学习理解
  4. vb 获取系统声音的电平_质量好的背景音乐系统套装效果图
  5. 机器人坐标系建立_如何在30分钟内建立一个简单的搜索机器人
  6. Selenium 调用IEDriverServer打开IE浏览器
  7. 想辞职专心做自媒体可以吗?有哪些建议吗?
  8. 物资管理系统c语言运行程序,C语言实现仓库物资管理系统.pdf
  9. Directx教程(28) 简单的光照模型(7)
  10. HTML 中Doctype简单解析
  11. python eval exec_Python基础教程 使用 exec和eval 执行字符串及计算其结果
  12. JEP 尝鲜系列 3 - 使用虚线程进行同步网络 IO 的不阻塞原理
  13. 快手sig签名和did egid的注册(操作太快了,请稍微休息一下)
  14. editplus破解源码
  15. 图片验证码识别教程技术原理分析
  16. P5900 无标号无根树计数 题解
  17. 电脑里的html打不开,电脑网页打不开怎么回事,教您解决网页打不开的办法
  18. 主板BIOS被破坏时的解决方法
  19. 基于Java/Mysql的个人博客网站
  20. Vim用原生雅黑Consolas混合字体新方法

热门文章

  1. 外盘期货交易软件有哪些(十大正规外盘期货)
  2. 【游戏开发日志】【Unity】day_one
  3. 国产操作系统和linux 之间的关系,为何国产系统大多基于开源Linux?操作系统从0做起到底有多难?...
  4. 2022-2028年中国云制造行业深度调研及投资前景预测报告
  5. 写论文第四天:选择最佳的参数
  6. 【移动终端应用开发】实验2:SQLite数据库的使用
  7. redis缓存失效时间设为多少_Redis有效时间设置及时间过期处理
  8. 机器学习第14章(概率图模型)
  9. Vant Uploader 文件上传
  10. 国网GIM设备三维模型要求细则 - 框架式电容器