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)
针对不同的分隔符修改一下正则表达式即可。全部代码都贴上去了,直接复制修改下数据库的配置就可以运行了。
总结:
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。