Python:CSV到MySQL数据库

我的Python版本3.9.10,MySQL版本8.0.29,数据库管理工具Navicat版本15。

先新建一个数据库。MySQL创建数据库的命令如下。db_csv是我的数据库名称。

CREATE DATABASE db_csv;

附上运行代码,Python编写的“打开CSV文件并将里面的数据传输到数据库”。

import pymysql #缺少pymysql时,在终端输入“pip install pymysql”来安装。
#自定义函数CSV_SQL()
def CSV_SQL():
    #连接数据库。
    #host是数据库的ip地址,“127.0.0.1”或者“localhost”表示本地的意思。
    #port是端口号,数据库端口号默认为3306。
    #user是数据库用户名,password是密码。需要改成你自己数据库的用户名和密码。
    #db是数据库的名字,我这边使用的是'db_csv'。
    #charset表示使用的字符格式。
    #connect_timeout连接超时设定,单位:毫秒。1秒(s)=1000毫秒(ms)。
    sql_conn = pymysql.connect(host='127.0.0.1', port=3306, user='root',
                           password='wiseasy', db='db_csv', charset='utf8', connect_timeout=1000)
    #创建数据库对象
    cursor = sql_conn.cursor()
    #执行创表语句(创建表“csv_text”,设置其表内的字段名和字段对应列的容量)
    sql_1 ='CREATE TABLE IF NOT EXISTS `csv_text` (`T0` VARCHAR ( 50 ),`T1` VARCHAR ( 50 ),`T2` VARCHAR ( 50 ), '\
	        '`T3` VARCHAR ( 50 ),`T4` VARCHAR ( 50 ),`T5` VARCHAR ( 50 ),`T6` VARCHAR ( 50 ))'
    cursor.execute(sql_1)
    #读取CSV文件并导入数据库
    #用“with”打开文件可以不用去特意关闭file了,python3不支持file()打开文件,只能用open()
    #CSV文件的绝对路径,在我这边是“D:\\Moves\\测试文本.csv”
    #路径名原本是“D:\Moves\测试文本.csv”,但是“\”有别的特殊含义,所以写成路径的时候最好写成“\\”
    #“encoding”为打开文件时用的编码格式
    #如果文本输出出现“\ufeff”时,请将encoding处的utf-8改为utf-8-sig即可(因为涉及到“BOM”,具体原因请自行百度)
    with open('D:\\Moves\\测试文本.csv', encoding='utf-8') as line_1:
        #依次读取CSV文件的每一行
        for line_2 in line_1.readlines():
            #strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
            line_2 = line_2.strip()
            #split() 通过指定分隔符对字符串进行切片,这里指定',',而“-1”表示分隔所有
            list_1 = line_2.split(',', -1)
            #执行插入表数据语句
            sql_2 = 'INSERT INTO csv_text (T0, T1, T2, T3, T4, T5, T6) VALUE(%s, %s, %s, %s, %s, %s, %s)' 
            cursor.execute(sql_2, (list_1[0], list_1[1], list_1[2], list_1[3], list_1[4], list_1[5], list_1[6]))
    sql_conn.commit() #提交事务
    sql_conn.close() #关闭连接
    print('程序执行完毕')

#执行自定义函数CSV_SQL()
if __name__ == '__main__':
    CSV_SQL()

然后创建一个CSV文件。 下面放出我使用的CSV文件的内容。

He,didn’t,say,any,more,but,we’ve,always,been,unusually
communicative,in,a,reserved,way,and,I,understood,that,he
meant,a,great,deal,more,than,that.,In,consequence,I’m
inclined,to,reserve,all,judgments,a,habit,that,has,opened
up,many,curious,natures,to,me,and,also,made,me
the,victim,of,not,a,few,veteran,bores.,end1,end2

运行Python代码后,检查MySQL数据库 。

我的代码执行只录入前7列,需要录入更多的数据,请改代码。

 最后再附上几条数据库常用命令。

MySQL查看导入的表的命令:

SELECT * FROM db_csv.csv_text;

MySQL删除导入的表的命令:

DROP TABLE db_csv.csv_text;

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值