使用Python将txt文件和csv文件批量写入到MySQL数据库

因为需要,插入一些数据到数据库,就写了一个简单的批量插入

  • 这里使用的是mysqldb框架
  • 安装的话使用:pip install MySQLdb
## 数据库批量添加

import MySQLdb as mdb
from datetime import datetime
import time
     
con = None
# 使用txt文件,注意文本格式以','隔开
fname = './loc.txt'
# 使用csv文件
#fname = './loc.csv'

# 打开文件遍历每一行并分割成一个数组依次存入s当中
with open(fname, 'r+', encoding='utf-8') as f:
    # 因为csv也是','隔开的文本文件,同样适用','分割
    # 使用strip()去除空格和换行符,并写入到s中
    s = [i.strip().split(',') for i in f.readlines()]

print(s)
try:
    # 连接数据库,设置编码为utf8,不然存入中文乱码
    # ip,user,password,databasename,charset='utf8'
    con = mdb.connect('127.0.0.1','roger_banner','1234qwer','roger_banner',charset='utf8')
    with con:
        # 创建连接
        cur = con.cursor()
        # 遍历s 获取每一行的数据
        for item in s:
            # 遍历item 获取每个元素的值
            for t in item:
                # 当前时间转换为时间戳
                now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
                #转为数组
                now = time.strptime(now, "%Y-%m-%d %H:%M:%S")
                #转为时间戳
                now = int(time.mktime(now))
                # sql语句,插入到advertising_ban表中,这里时间存的时间戳
                sql = "INSERT INTO advertising_ban(content, time) VALUES ('{}','{}')"
                # 格式化语句,将值传入进去
                sql = sql.format(t, now)
                print(sql)
                # 执行sql语句
                cur.execute(sql)
                # 提交,必须提交commit才会生效,写入数据库中
                con.commit()

finally:
    if con:
        # 关闭连接
        con.close()
  • 使用txt文件,注意文本格式每行以’,'隔开
    fname = './loc.txt'

  • 使用csv文件
    fname = './loc.csv'

  • 文件格式
    使用Python将txt文件和csv文件批量写入到MySQL数据库_第1张图片

  • 执行结果
    使用Python将txt文件和csv文件批量写入到MySQL数据库_第2张图片

  • 在同级目录下创建一个loc.txt文件,将数据放入文件中,使用‘,’隔开就行,可以分行。
    这个比较简单,只是插入两个字段,其他多字段的,在上面改进就行,如果需要插入多字段,
    可以一行写上一条数据的所有字段的值,遍历的时候只需遍历s就行,取值就通过item下标,比如item[1]就可以了,然后放入插入语句,执行就能存到数据库中了。

你可能感兴趣的:(Python,mysql,MySQLdb,mysql,数据库,python,sql)