Linux中将txt导入到mysql的方法教程
前言
昨天写小项目的时候遇到了一个需求:把txt文档的数据导入到mysql数据库中,开始本来想直接用MysqlWorkbench导入TXT文件,但是最后发现不支持TXT导入,结果我吧嗒吧嗒的去把TXT转了Excel,拿到Linux上导入的时候又发现了各种乱码问题。
抱着没有什么是程序员干不了的原则,我手写了一个Python代码直接操作文件进行导入了。结果大概一万多条的文件,导入时间大概两分钟。
下面是具体的代码:
- mysqlpython.py文件: 自定义的连接mysql数据库的类
- importtxt.py文件:读TXT文件并进行插入操作
- dict.txt文件:要操作的TXT文件
mysqlpython.py文件
frompymysqlimport* classMysqlpython: def__init__(self,database,host="localhost", user="root",password="123456", charset="utf8",port=3306): self.database=database self.host=host self.user=user self.password=password self.charset=charset self.port=port #创建数据连接和游标对象 defopen(self): self.db=connect(host=self.host, user=self.user, password=self.password, port=self.port, database=self.database, charset=self.charset) self.cur=self.db.cursor() #关闭游标对象和数据库连接对象 defclose(self): self.cur.close() self.db.close() #执行sql命令 defzhixing(self,sql,L=[]): self.open() self.cur.execute(sql,L) self.db.commit() self.close() #查询功能 defall(self,sql,L=[]): self.open() self.cur.execute(sql,L) result=self.cur.fetchall() returnresult if__name__=="__main__": sqlh=Mysqlpython("dictionary") sel="select*fromuser" r=sqlh.all(sel) print(r)
importtxt.py文件
importre importsys frommysqlpythonimportMysqlpython sqlh=Mysqlpython("dictionary") definsert(data): arr=data.split() name=arr[0] description="".join(arr[1:]) ins="insertintowords(name,description)values(%s,%s)" sqlh.zhixing(ins,[name,description]) defget_addr(): f=open('./dict.txt') lines=f.readlines() forlineinlines: insert(line) f.close() return'' if__name__=='__main__': print(get_addr())
dict.py文件(我复制了几条文件)
aindefartone abacusn.framewithbeadsthatslidealongparallelrods,usedforteachingnumberstochildren,and(insomecountries)forcounting abandonv.goawayfrom(apersonorthingorplace)notintendingtoreturn;forsake;desert abandonmentn.abandoning abasev.~oneself/sbloweroneself/sbindignity;degradeoneself/sb; abashtodestroytheself-possessionorself-confidenceof:disconcert abashedadj.~embarrassed;ashamed abatev.makeorbecomeless abattoirn.=slaughterhouse(slaughter)
针对不同的分隔符修改一下正则表达式即可。全部代码都贴上去了,直接复制修改下数据库的配置就可以运行了。
总结:
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。