昨天写小项目的时候遇到了一个需求:把txt文档的数据导入到mysql数据库中,开始本来想直接用Mysql Workbench导入TXT文件,但是最后发现不支持TXT导入,结果我吧嗒吧嗒的去把TXT转了Excel,拿到Linux上导入的时候又发现了各种乱码问题。

抱着没有什么是程序员干不了的原则,我手写了一个Python代码直接操作文件进行导入了。结果大概一万多条的文件,导入时间大概两分钟。

下面是具体的代码:

  • mysqlpython.py文件: 自定义的连接mysql数据库的类
  • importtxt.py文件: 读TXT文件并进行插入操作
  • dict.txt文件: 要操作的TXT文件

mysqlpython.py文件

from pymysql import *class Mysqlpython:
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
# 创建数据连接和游标对象
def open(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()# 关闭游标对象和数据库连接对象
def close(self):
self.cur.close()
self.db.close()# 执行sql命令
def zhixing(self,sql,L=[]):
self.open()self.cur.execute(sql,L)
self.db.commit()self.close()# 查询功能
def all(self,sql,L=[]):
self.open()
self.cur.execute(sql,L)
result = self.cur.fetchall()
return resultif __name__ == "__main__":
sqlh = Mysqlpython("dictionary")
sel = "select * from user"
r = sqlh.all(sel)
print(r)

importtxt.py文件

import re
import sys
from mysqlpython import Mysqlpython
sqlh = Mysqlpython("dictionary")def insert(data):
arr = data.split()
name = arr[0]
description = " ".join(arr[1:])
ins = "insert into words(name,description) values(%s,%s)"
sqlh.zhixing(ins,[name,description])def get_addr():
f = open('./dict.txt')
lines=f.readlines()
for line in lines:
insert(line)
f.close()
return ''if __name__ =='__main__':
print(get_addr())

dict.py文件(我复制了几条文件)

a indef art one
abacus n.frame with beads that slide along parallel rods, used for teaching numbers to children, and (in some countries) for counting
abandon v. go away from (a person or thing or place) not intending to return; forsake; desert
abandonment n. abandoning
abase v. ~ oneself/sb lower oneself/sb in dignity; degrade oneself/sb ;
abash to destroy the self-possession or self-confidence of:disconcert
abashed adj. ~ embarrassed; ashamed
abate v. make or become less
abattoir n. = slaughterhouse (slaughter)

针对不同的分隔符修改一下正则表达式即可。全部代码都贴上去了,直接复制修改下数据库的配置就可以运行了。

有道词典

``` a indef art ...

详细X

```   一个indef艺术   abacus n.frame平行杆滑动的珠子,用于儿童教学数字,(在一些国家)计数   放弃与离开(一个人或物或地方)不打算返回;离弃;沙漠   放弃n .放弃   作诉~自己/某人/降低自己的尊严;降低自己/某人;   使局促不安摧毁的沉着或自信:破坏   尴尬的形容词~尴尬;羞愧   减轻诉制造或变得更少   屠宰场n。=屠宰场(屠宰)   ```

转载于:https://www.cnblogs.com/leijing0607/p/7290510.html

python第五篇:Linux上将txt导入mysql相关推荐

  1. linux mysql批量导入数据,linux怎么快速导入Mysql数据库与导出

    linux怎么快速导入Mysql数据库与导出 Era • 2013 年 05 月 19 日 搞了一个vps,最近在学习linux,就记录一些学习的心得吧. 使用phpadmin导入.卖出数据库比较慢不 ...

  2. ubuntu中,txt导入mysql数据库文件

    第一种方式是,在导入的mysql命令中,需要有local选项 newbooks.txt的内容为(字段之间用Tab键隔开): 1111    罗琳    哈利波特    50 ------------- ...

  3. 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】PowerPC + Linux2.6.25平台下的I2C驱动架构分析

    PowerPC + Linux2.6.25平台下的I2C驱动架构分析 Sailor_forever  sailing_9806#163.com (本原创文章发表于Sailor_forever 的个人b ...

  4. 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】PowerPC + Linux2.6.25平台下的SPI驱动架构分析

    PowerPC + Linux2.6.25平台下的SPI驱动架构分析 Sailor_forever  sailing_9806#163.com (本原创文章发表于Sailor_forever 的个人b ...

  5. 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】Oops在Linux 2.6内核+PowerPC架构下的前世今生

    Oops在Linux 2.6内核+PowerPC架构下的前世今生 Sailor_forever  sailing_9806#163.com (本原创文章发表于Sailor_forever 的个人blo ...

  6. 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】Linux信号机制分析

    Linux信号机制分析 Sailor_forever  sailing_9806@163.com 转载请注明 http://blog.csdn.net/sailor_8318/archive/2008 ...

  7. 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】Linux内核抢占实现机制分析

    Linux内核抢占实现机制分析 Sailor_forever  sailing_9806@163.com 转载请注明 http://blog.csdn.net/sailor_8318/archive/ ...

  8. 【Linux从青铜到王者】第五篇:Linux进程概念第一篇

    系列文章目录 文章目录 系列文章目录 前言 一.冯诺依曼体系结构 二.操作系统 1.操作系统的概念 2.操作系统的目的 3.操作系统的定位 4.如何理解管理 5.操作系统总结 6.系统调用和库函数概念 ...

  9. 【Linux从青铜到王者】第十五篇:Linux网络编程套接字两万字详解

    系列文章目录 文章目录 系列文章目录 前言 一.网络数据的五元组信息 1.理解源IP地址和目的IP地址 2.理解 "端口号" 和 "进程ID" 3.理解源端口号 ...

  10. txt 导入 mysql python_Python导入txt数据到mysql的方法

    本文实例讲述了Python导入txt数据到mysql的方法.分享给大家供大家参考.具体分析如下: 从TXT文本转换数据到MYSQL数据库,接触一段时间python了 第一次写东西 用的是Python2 ...

最新文章

  1. Windows Nano Server安装配置详解07:部署IIS
  2. ListView中的图片异步加载、缓存
  3. Codeforces 1153 C Serval and Parenthesis Sequence
  4. Problem E: 平面上的点——Point类 (II)
  5. 如何让自己的内心强大起来
  6. 程序员面试、算法研究、编程艺术、红黑树4大系列集锦与总结
  7. 结对项目——最大子数组
  8. ListObject 多条件去重
  9. Java线程池ThreadPoolExecutor源码分析
  10. 最新emoji表情代码大全_10月最新早上好问候语表情图片大全,朋友们大家早上好表情包!...
  11. Python实现毫秒级抢单,6翻了!
  12. oracle中if语句用法,Oracle IF语句的使用 | 学步园
  13. 百度快照劫持的解决方法
  14. 刷新bios后电脑死机了怎么办
  15. c语言中断函数作用,进一步理解中断函数
  16. 公历与儒略日的相互转化
  17. Opencv配置常见问题:
  18. 英语--日常生活名词收集 Daily Life Nouns Collection
  19. 关于7Z自解压文件拆分,读取条目,复写,合并的功能
  20. 软件研发类应届毕业生培养考核的三个阶段

热门文章

  1. jQuery判断浏览器是移动端还是电脑端自动跳转
  2. 软件测试第三次作业-worldCount
  3. iOS,QRCord(矩阵二维码)
  4. HDU2093--考试排名
  5. C++复合类型-引用变量
  6. Ubuntu 下搭建 Android 开发环境(图文)
  7. ieee1284controller怎么添加打印机_讲述3D打印机怎么用 初学者必看
  8. c/c++混编到的问题 extern C 介绍【转】
  9. [数据结构] 配对堆
  10. vue-cli2.0webpack的理解