mysql导入txt linux_Linux中将txt导入到mysql的方法教程-程序员宅基地

技术标签: mysql导入txt linux  

前言

昨天写小项目的时候遇到了一个需求:把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 result

if __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)

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

总结:

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

本文标题: Linux中将txt导入到mysql的方法教程

本文地址: http://www.cppcns.com/shujuku/mysql/243879.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39634508/article/details/113162827

智能推荐

南开大学2021年题库考试,南开大学python编程基础-程序员宅基地

文章浏览阅读361次,点赞9次,收藏10次。大家好,小编为大家解答南开大学本科生入学考试试题的问题。)可供利用并产生效益、与社会生产和活动有关的各种文字、数字、音像、图表、语言等一切信息的总称。信息是反应客观世界中各种事物特征和变化的知识,是数据加工的结果,是有用的数据。)其开发利用可大大减少材料和能源的消耗,减少污染。网上信息的浏览、搜索和下载方法。种形态:数字、文本、声音、图像。)无限的、可再生的、可共享的;数据库应用的基本概念。

索引到底能提升多少查询效率?何时该使用索引?一文快速搞懂数据库索引及合理使用它_索引越多查询效率越高吗-程序员宅基地

文章浏览阅读1.3w次,点赞43次,收藏71次。一、前言无论是面试、还是日常工作中,或多或少都会使用或者听到别人谈论索引这个技术。然而很大一部份程序员对索引的了解仅限于到“加索引能使查询变快”这个概念为止。使用索引也很简单,然而, 会使用索引是一回事, 而深入理解索引原理又能恰到好处使用索引又是另一回事。这已经是两个相差甚远的技术层级了。二、千万级数据表索引和无索引查询效率对比现在有一个学生表student,有1000万条数据未加索引,查询class_id=2的学生信息的耗时:SELECT * FROM student WHERE cla_索引越多查询效率越高吗

Matlab find函数,提示‘空的 1×0 double 行矢量_matlab空的1×0double行向量-程序员宅基地

文章浏览阅读2.1k次,点赞3次,收藏2次。Matlab find函数,提示‘空的1x0 double矢量’_matlab空的1×0double行向量

安捷伦Agilent 16451B电介质材料-程序员宅基地

文章浏览阅读334次,点赞7次,收藏8次。Agilent 16451B较测量与评估电介质材料,与ASTM D150兼容。Agilent 16451B采用平行J板技术,将被测材料夹于两电J间形成电容器。然后使用LCR 表或抗阻分析仪测量由夹具形成的电容。用彩色图形显示噪声系统和增益频率变化的关系曲线。能经软盘调入储存噪声源的超噪声比(ENR数据)能与Agilent346和347噪声源配用。能经个GPIB对本振进行控制。了与PC机和打印机的连通性。灵活而直观的用户界面。

教你快速入门ElasticSearch,超详细简单~_elasticsearch菜鸟教程-程序员宅基地

文章浏览阅读1.5w次,点赞26次,收藏111次。教你快速入门ElasticSearch,超详细简单~一. 初探ElasticSearch1.1 什么是ElasticSearch?ElasticSearch,简称为ES,它是一个开源的高扩展的分布式全文检索硬气,它可以近乎实时的存储、检索数据;它的扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用java开发并使用Lucene作为其核心来实现所有索引和搜索的功能。它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。1.2 它与Solr_elasticsearch菜鸟教程

5g核心网开源协议栈:open5GS安装教程(详解)_核心网 ip 协议栈(1)_open5gs 搭建本地电话系统-程序员宅基地

文章浏览阅读725次,点赞16次,收藏8次。对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。IP地址为localhost,如需外部访问可将此处localhost改为本地ip地址。使用浏览器访问localhost:9999,默认账号密码:admin/1423。使用netstat -pan|grep 9999查看端口开放情况。每个人这里看到的端口可能不一样,以自己的环境为准。查看webui的ip和端口设置。查看webui服务状态。开始安装nodejs。_open5gs 搭建本地电话系统

随便推点

h1——h6标签内容对应像素_标签打印机 对应像素px chrome-程序员宅基地

文章浏览阅读1.7k次。浏览器默认为body:100%=16px;浏览器计算得出:h1=32pxh2=24pxh3=18.72pxh4=16pxp=16pxh5=13.28pxh6=12px_标签打印机 对应像素px chrome

关于ABAP自动补零和去零的一个坑_abap 物料补0-程序员宅基地

文章浏览阅读2.3k次。今天写接口时遇到需要物料号前补位0,使用方法如下:FORM ADDZERO CHANGING INPUT.CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’EXPORTINGINPUT = INPUTIMPORTINGOUTPUT = INPUT.ENDFORM.结果自然是出错了,修改后的物料号一直是四十位(正常应该是18位数字)。在网上搜索资料结果发现物料号的补位BAPI和别的不一样。CALL FUNCTION ‘CONVERSION_EXIT_MA_abap 物料补0

渲染进程与渲染进程之间的通信_渲染进程互相传递、-程序员宅基地

文章浏览阅读402次。渲染进程之间如何互相调用思路:通过主进程进程中转在渲染进程1中编写发送代码:ipcRenderer.send("a")在主进程main.js中编写接收和转发代码ipcMain.on('a',(event => { event.sender.send('b');}));在渲染进程2中编写接收代码ipcRenderer.on("b", async (e..._渲染进程互相传递、

小程序drawImage()绘制网络图片生成图片保存到本地真机不显示_drawimage src为本地导入真机不显示-程序员宅基地

文章浏览阅读7.7k次。 标题有点绕,问题是这样的:小程序用canvas绘制一包含图片的内容使用自带的API:drawImage,然后将其生成图片保存到相册,pc端模拟器可以完美实现,然而真机生成图片没有所绘制的图片。原因是这样的:首先看小程序官方文档上drawImage的用法:const ctx = wx.createCanvasContext('myCanvas')wx.chooseIm..._drawimage src为本地导入真机不显示

K8S 部署 SpringBoot 项目(一篇够用)-程序员宅基地

文章浏览阅读572次,点赞27次,收藏17次。由于细节内容实在太多了,为了不影响文章的观赏性,只截出了一部分知识点大致的介绍一下,每个小节点里面都有更细化的内容!小编准备了一份Java进阶学习路线图(Xmind)以及来年金三银四必备的一份《Java面试必备指南》《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!获取!!(备注Java获取)**由于细节内容实在太多了,为了不影响文章的观赏性,只截出了一部分知识点大致的介绍一下,每个小节点里面都有更细化的内容!

MyBatis-2_mybatis2-程序员宅基地

文章浏览阅读132次。MyBatis 是一个优秀的持久层框架,它对 jdbc 的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建 connection、创建 statement、手动设置参数、结果集检索等 jdbc繁杂的过程代码。_mybatis2

推荐文章

热门文章

相关标签