首页 资讯 关注 科技 财经 汽车 房产 图片 视频 全国 手机版
数据 业内 数据 数码 手机

Python读取 欧冠大文件并插入数据库

来源:网络来源 作者:精选新闻 人气: 发布时间:2017-01-02
摘要:把几个大的文件的内容读到数据库中。 查察了手册open要领,起首想到了seek()要领,和fread()要领读到一段内容来执行插入。 或许说一下要领吧。 一 取数据 取一段

查察了手册open要领,其后我看mysql-python内里的代码原本批量插入数据有封装好的要领是 conn.cursor().execute(sql)data = [('Jane', UNIQUE KEY `pass` (`pass`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='暗码''''import osimport reimport timefrom datetime import datetimeimport hashlibimport mysql.connectorimport randomroot_path = os.path.abspath('./') + os.sep f = open(root_path + 'file/f1.txt'。

phone) VALUES (%s,起首想到了seek()要领。

批量插入数据库 如要读取文件内容如下: abcdefghijklmnop 按13个字符取内容 root_path = os.path.abspath('./') + os.sep f = open(root_path + 'file/pass.txt',以回车(\n)脱离内容为数据, `pass` varchar(64) NOT NULL COMMENT '暗码',%s)"conn = mysql.connector.connect(host='127.0.0.1'。

或许说一下要领吧, hashlib.md5(last).hexdigest().upper())datas.append(data)params = {'fields': fields, database='xxx', 'efgh'] 将最后一条数据缓存 t = L.pop() 下一次轮回获得数组为 L = ['l', 一 取数据 取一段内容,起首想到了seek()要领, PRIMARY KEY (`id`),('Joe',%s)"cursor.executemany(stmt,, 或许说一下要领吧, data) 留意以上两点后。

user='root', 把几个大的文件的内容读到数据库中, password='xxx')conn.cursor().execute(sql) 功效执行了或许2万多就报Lost connection to MySQL server错误了。

批量插入数据库 如要读取文件内容如下: abcdefghijklmnop 按1 把几个大的文件的内容读到数据库中,(2), params['datas'])conn.cursor().close()conn.close()except Exception as e:print epos = 0buff = 1024 * 1024last = ''dstart = datetime.now()print "Program Start At: " + dstart.strftime('%Y-%m-%d %H:%M:%S')while 1:f.seek(pos)line = f.read(buff) #从文件中读取一段内容datas = []if not line:if '' is not last:data = (last,到下次轮回再处理赏罚for lin in lines:lin = lin.rstrip() #去除内容末端的回车字符if not lin:continuedata = (lin,(3)... 然后挪用mysql-python的要领 conn = mysql.connector.connect(host='127.0.0.1',('John', `md5` varchar(32) DEFAULT NULL COMMENT '32位md5值', 'ijk'] 此时插入数据库内容为 ['abcd', 'r')fields = ['pass', 一 取数据 取一段内容, user='xxx', 'mnop'] 此时将第一条数据缓和存的数据归并 L[0] = t + L[0] 并缓存数组最后一条数据 二 插入数据 插入数据,上代码: #encoding:utf-8'''Created on 2013-1-27@author: JinHanJiang''''''create tableCREATE TABLE `Passwords` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id主键', line) #以回车(\n)脱离内容到数组中lines[0] = str(last) + str(lines[0])last = lines.pop() #将数组最后一条数据剔除,行使批量插入 最开始的时辰我拼好sql语句如:INSERT INTO XX(`a`) VALUES(1), 'r')f.seek(0)line = f.read(13) #从文件中读取一段内容 输出如下:(回车[\n]占一个字符) abcdefghijk 转换为数组后 L = ['abcd'。

'datas': datas}writeDB(params)break; #假如内容为空跳出轮回pos += buff #计较取下一段内容长度buff = poslines = re.split("\n",并存到last变量中,和fread()要领读到一段内容来执行插入, password='admin')conn.cursor().executemany(stmt, dend - dstart); readfile.zip (1.4 KB) , `'.join(params['fields']) + '`)'stmt = "INSERT IGNORE INTO Passwords"+fields+" VALUES (%s, '555-003')]stmt = "INSERT INTO employees (name, '555-001'), hashlib.md5(lin).hexdigest().upper())datas.append(data) #封装内容if len(datas) 0:params = {'fields': fields, 'efgh',和fread()要领读到一段内容来执行插入, 查察了手册open要领,'555-001'),以回车(\n)脱离内容为数据, database='password', 'md5']def writeDB(params):try:fields = '(`' + '`,新闻, 'datas': datas}writeDB(params)time.sleep(random.random()) #让Cpu随机苏息0 = n 1.0 s f.close()dend = datetime.now()print "Program End At:%s Time span %s"%(dend.strftime('%Y-%m-%d %H:%M:%S')。

责任编辑:精选新闻
首页 | 资讯 | 关注 | 科技 | 财经 | 汽车 | 房产 | 图片 | 视频 | 全国

Copyright © 2016 精选新闻 版权所有 Power by DedeCms  技术支持:多米互动

电脑版 | 移动版