您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 利用python实现将txt文件导入到mysql的应用实例
利用python实现将txt文件导入到mysql的应用实例实现思想:1、python自动完成在txt文件中加入自定义标签(简单的txt文件可以不需要),2、python自动完成将含有自定义标签的txt文件导入到mysql。除了原始txt文件的内容外。整个实现过程全部由python程序自动完成,运行环境是在centos7的python2.7,本例省去了用python建立mysql数据库(和表)的过程。1、原始txt文件显示(举例)如下:排名1公司名称沃尔玛(WAL-MARTSTORES)营业收入476294利润16022国家美国排名2公司名称荷兰皇家壳牌石油公司营业收入459599利润16371国家荷兰排名3公司名称中国石油化工集团公司(SINOPECGROUP)营业收入432007.7利润8932.1国家中国排名4公司名称中国石油天然气集团公司营业收入416294利润18504.8国家中国排名5公司名称埃克森美孚(EXXONMOBIL)营业收入407666利润32580国家美国排名6公司名称英国石油公司(BP)营业收入396217利润23451国家英国排名7公司名称国家电网公司(STATEGRID)营业收入333386.5利润7982.8国家中国排名8公司名称大众公司(VOLKSWAGEN)营业收入261539.1利润12071.5国家德国排名9公司名称丰田汽车公司(TOYOTAMOTOR)营业收入256454.8利润18198.2国家日本排名10公司名称嘉能可(GLENCORE)营业收入232694利润-7402国家瑞士#后面内容省略……说明以上txt文件来源2015世界500强公司排名完整榜单注:收入和利润单位为百万美元2、含有自定义标签的文件显示(举例)如下:排名PM1/PM公司名称GS沃尔玛/GS(WAL-MARTSTORES)营业收入SR476294/SR利润LR16022/LR国家GJ美国/GJ排名PM2/PM公司名称GS荷兰皇家壳牌石油公司/GS营业收入SR459599/SR利润LR16371/LR国家GJ荷兰/GJ排名PM3/PM公司名称GS中国石油化工集团公司/GS(SINOPECGROUP)营业收入SR432007.7/SR利润LR8932.1/LR国家GJ中国/GJ排名PM4/PM公司名称GS中国石油天然气集团公司/GS营业收入SR416294/SR利润LR18504.8/LR国家GJ中国/GJ排名PM5/PM公司名称GS埃克森美孚/GS(EXXONMOBIL)营业收入SR407666/SRLR利润32580/LR国家GJ美国/GJ排名PM6/PM公司名称GS英国石油公司/GS(BP)营业收入SR396217/SR利润LR23451LR国家GJ英国/GJ排名PM7/PM公司名称GS国家电网公司/GS(STATEGRID)营业收入SR333386.5/SR利润LR7982.8/LR国家GJ中国/GJ排名PM8/PM公司名称GS大众公司/GS(VOLKSWAGEN)营业收入SR261539.1/SR利润LR12071.5/LR国家GJ德国/GJ排名PM9/PM公司名称GS丰田汽车公司/GS(TOYOTAMOTOR)营业收入SR256454.8/SR利润LR18198.2/LR国家GJ日本/GJ排名PM10/PM公司名称GS嘉能可/GS(GLENCORE)营业收入SR232694/SR利润-LR7402/LR国家GJ瑞士/GJ#后面内容省略……自定义标签说明:PM代表排名/PMGS代表公司名称/GSSR代表营业收入/SRLR代表利润/LRGJ代表文国家/GJ3、mysql表栏位结构如下:[root@test]#mysql-uroot-p123456mysqlusebch;ReadingtableinformationforcompletionoftableandcolumnnamesYoucanturnoffthisfeaturetogetaquickerstartupwith-ADatabasechangedmysqldescbchtp;+-------+--------------+------+-----+--------+-------+|Field|Type|Null|Key|Default|Extra|+-------+--------------+------+-----+---------+-------+|pm|varchar(6)|YES||NULL|||gs|varchar(255)|YES||NULL|||sr|varchar(255)|YES||NULL|||lr|varchar(255)|YES||NULL|||gj|varchar(255)|YES||NULL||+-------+--------------+------+-----+--------+------+6rowsinset(0.00sec)说明:表栏位名字及代表的内容和标签(见自定义标签说明)一致。4、导入后的mysql数据举例如下:mysqlselectpmas排名,gsas公司名称,sras营业收入,lras利润,gjas国家frombchtp;+-----+-------------------------+---------+-------+------+|排名|公司名称|营业收入|利润|国家|+-----+-------------------------+---------+-------+------+|1|沃尔玛|476294|16022|美国|+-----+-------------------------+---------+-------+------+|2|荷兰皇家壳牌石油公司|459599|16371|荷兰|+-----+-------------------------+---------+-------+------+|3|中国石油化工集团公司|432007.7|8932.1|中国|+-----+-------------------------+---------+-------+------+|4|中国石油天然气集团公司|416294|16022|中国|+-----+-------------------------+---------+-------+------+|5|埃克森美孚|407666|32580|美国|+-----+-------------------------+---------+-------+------+|6|英国石油公司|396217|23451|英国|+-----+-------------------------+---------+-------+------+|7|国家电网公司|333386.5|7982.8|中国|+-----+-------------------------+---------+-------+------+|8|大众公司|261539.1|12071.5|德国|+-----+-------------------------+---------+-------+------+|9|丰田汽车公司|256454.8|18198.2|日本|+-----+-------------------------+---------+-------+------+|10|嘉能可|232694|7402|瑞士-|+-----+-------------------------+---------+-------+------+#后面内容省略……5、程序脚本如下:[root@test]#cat程序脚本.shpython增加标签.py#简单的txt文件可以不需要增加标签.pypython文件导入数据库.py6、增加标签.py如下:[root@test]#cat增加标签.py#-*-coding:utf-8-*-#简单的txt文件可以不需要增加标签.py,下面只是实现的思路,#要根据txt文件的实际情况和具体要求做适当修改。importcodecsimportsysffrom=open(原始txt文件,'r')fto=open(含有标签的文件,w+)tyjl=''whileTrue:rec=ffrom.readline()bzwb=''bzwe=''di=''tyjl=’’di=rec.strip()zkh=di.find('(')#查找公司名称的左括号,cu=len(di)ifzkh==-1:#没有查到,全是中文名称zkh=cuelse:passifnotrec:breakelif(di[0:6]=='排名'):tyjl=bzwb+tyjl[6:]+bzwe+'\n'fto.write(tyjl)bzwb='PM'bzwe='/PM'tyjl='PM'+di+'/PM'+'\n'elif(di[0:12]=='公司名称'):tyjl=bzwb+tyjl[12:zkh]+bzwe+'\n'#只取公司名称的中文部分fto.write(tyjl)bzwb='GS'bzwe='/GS'tyjl='GS'+di+'/GS'+'\n'elif((di[0:12]==’营业收入’):tyjl=bzwb+tyjl[12:]+bzwe+'\n'fto.write(tyjl)bzwb='SR'bzwe='/SR'tyjl='SR'+di+'/SR'+'\n'elif(di[0:6]=='利润'):tyjl=bzwb+tyjl[6:]+bzwe+'\n'fto.write(tyjl)bzwb='LR'bzwe='/LR'tyjl=dielif(di[0:6]=='国家'):tyjl=bzwb+tyjl[6:]+bzwe+'\n'fto.write(tyjl)bzwb='GJ'bzwe='/GJ'tyjl=dielse:tyjl=tyjl+difto.closeffrom.close7、文件导入数据库.py如下:[root@test]#cat文件导入数据库.py#-*-coding:UTF-8-*-#下面只是实现的思路,要根据实际情况和具体要求做适当修改。importMySQLdb#打开数据库连接db=MySQLdb.connect(localhost,root,123456,bch,port=3306,charset=utf8)#使用cursor()方法获取操作游标cursor=db.cursor()f=open(含有标签的文件,r)yh=0gsvalue=''pmvalue=''lrvalue=''gjvalue=''srvalue=''gsb=-1pmb=-1lrb=-1gjb=-1srb=-1gse=-1pme=-1lre=-1gje=-1sre=-1bzw=rec=''line=''whileTrue:rec=f.readline()ifrec:line=rec.strip()pmb=line.find('PM')pme=line.rfind('/PM')gsb=line.find('GS')gse=line.rfind('/GS')srb=line.find('SR')sre=line.rfind('/SR')lrb=line.find('LR')lre=line.rfind('/LR')gjb=line.
本文标题:利用python实现将txt文件导入到mysql的应用实例
链接地址:https://www.777doc.com/doc-4211074 .html