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