您的位置:首页 > 编程语言 > Python开发

将TXT文件数据存进Python内置数据库splite3

2017-04-26 08:16 323 查看
当TXT文件太大,计算机内存不够时,我们可以选择按行读取TXT文件,并将其存储进Python内置轻量级splite数据库,这样可以加快数据的读取速度,当我们需要重复读取数据时,这样的速度加快所带来的时间节省是非常可观的,比如,当我们在训练数据时,要迭代10万次,即要从文件中读取10万次,即使每次只加快0.1秒,那么也能节省几个小时的时间了。

#创建数据库并把txt文件的数据存进数据库
import sqlite3 #导入sqlite3
cx = sqlite3.connect('./train.db') #创建数据库,如果数据库已经存在,则链接数据库;如果数据库不存在,则先创建数据库,再链接该数据库。
cu = cx.cursor() #定义一个游标,以便获得查询对象。
cu.execute('create table if not exists train4 (id integer primary key,name text)') #创建表
fr = open('data_sample.txt') #打开要读取的txt文件
i = 0
for line in fr.readlines(): #将数据按行插入数据库的表train4中。
cu.execute('insert into train4 values(?,?)',(i,line))
i +=1
cu.close() #关闭游标
cx.commit() #事务提交
cx.close() #关闭数据库查询数据:
cu.execute('select * from train4 where id = ?',(i,)) #i代表你要读取表train4中某一行的数据
result = cu.fetchall()PS:如果前面已经关闭了数据库,那么在查询时要重新打开数据库,并创建游标。这一点要注意一下。
完整的查询程序是这样的:
import sqlite3
cx = sqlite3.connect('./train.db')
cu = cx.cursor()
for i in range(5):
cu.execute('select * from train4 where id = ?',(i,))
result = cu.fetchall()
cx.commit()
cu.close()
cx.close()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐