没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Python实现读取实现读取TXT文件数据并存进内置数据库文件数据并存进内置数据库SQLite3的方的方
法法
主要介绍了Python实现读取TXT文件数据并存进内置数据库SQLite3的方法,涉及Python针对txt文件的读取及
sqlite3数据库的创建、插入、查询等相关操作技巧,需要的朋友可以参考下
本文实例讲述了Python实现读取TXT文件数据并存进内置数据库SQLite3的方法。分享给大家供大家参考,具体如下:
当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()
注:注:如果前面已经关闭了数据库,那么在查询时要重新打开数据库,并创建游标。这一点要注意一下。
完整的查询程序是这样的:
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()
另:另:这里再为大家附带一个SQLite3数据操作类供大家参考使用:
import sqlite3
# ***************************************************
# *
# * Description: Python操作SQLite3数据库辅助类(查询构造器)
# * Author: wangye
# *
# ***************************************************
def _wrap_value(value):
return repr(value)
def _wrap_values(values):
return list(map(_wrap_value, values))
def _wrap_fields(fields):
for key,value in fields.items():
fields[key] = _wrap_value(value)
return fields
def _concat_keys(keys):
return "[" + "],[".join(keys) + "]"
def _concat_values(values):
return ",".join(values)
def _concat_fields(fields, operator = (None, ",")):
if operator:
unit_operator, group_operator = operator
# fields = _wrap_fields(fields)
compiled = []
for key,value in fields.items():
compiled.append("[" + key + "]")
资源评论
weixin_38547882
- 粉丝: 4
- 资源: 885
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功