昨天写小项目的时候遇到了一个需求:把txt文档的数据导入到mysql数据库中,开始本来想直接用mysql工作台导入txt文件,但是最后发现不支持三种导入,结果我吧嗒吧嗒的去把txt转了Excel,拿到Linux上导入的时候又发现了各种乱码问题。
抱着没有什么是程序员干不了的原则,我手写了一个Python代码直接操作文件进行导入了。结果大概一万多条的文件,导入时间大概两分钟。
-
<李> mysqlpython.py文件:自定义的连接mysql数据库的类李>
<李> importtxt。py文件:读TXT文件并进行插入操作李>
<李> dict类型。txt文件:要操作的txt文件李>
<强> mysqlpython。py文件强>
从pymysql进口* 类Mysqlpython: def __init__(自我、数据库、主机=發ocalhost”, 用户=案?密码=" 123456 ", charset=" utf8 ",端口=3306): 自我。数据库=数据库 自我。主机=主机 自我。用户=用户 自我。密码=密码 自我。charset=字符集 自我。端口=端口 #创建数据连接和游标对象 def开放(自我): 自我。db=连接(主机=self.host, 用户=self.user, 密码=self.password,=self.port港 数据库=self.database, charset=self.charset) 自我。坏蛋=self.db.cursor () #关闭游标对象和数据库连接对象 def关闭(自我): self.cur.close () self.db.close () #执行sql命令 def zhixing(自我、sql、L=[]): self.open () self.cur.execute (sql, L) self.db.commit () self.close () #查询功能 def所有(自我、sql、L=[]): self.open () self.cur.execute (sql, L) 结果=self.cur.fetchall () 返回结果 if __name__==癬_main__”: sqlh=Mysqlpython(字典) 选?" select *从用户" r=sqlh.all(选取) 打印(r)
importtxt。py文件
进口再保险 导入系统 从mysqlpython进口mysqlpython sqlh=Mysqlpython(字典) def插入(数据): arr=data.split () name=arr [0] 描述=" " . join (arr [1:]) ins="插入文字(名称、描述)值(% s % s)” (名称、描述)sqlh.zhixing (ins) def get_addr (): f=开放(’。/dict.txt”) 行=f.readlines () 线的线: 插入(行) f.close () 回报” if __name__==癬_main__”: print (get_addr ())
dict类型。py文件(我复制了几条文件)
一个indef艺术 abacus n.frame平行杆滑动的珠子,用于儿童教学数字,(在一些国家)计数 放弃与离开(一个人或物或地方)不打算返回;离弃;沙漠 放弃n .放弃 作诉~自己/某人/降低自己的尊严;降低自己/某人; 使局促不安摧毁的沉着或自信:破坏 尴尬的形容词~尴尬;羞愧 减轻诉制造或变得更少 屠宰场n。=屠宰场(屠宰)
针对不同的分隔符修改一下正则表达式即可。全部代码都贴上去了,直接复制修改下数据库的配置就可以运行了。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。