Linux中将txt导入到mysql的方法教程
作者:Cassie1492949236626 发布时间:2024-01-12 13:04:27
标签:txt,导入,mysql
前言
昨天写小项目的时候遇到了一个需求:把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)
针对不同的分隔符修改一下正则表达式即可。全部代码都贴上去了,直接复制修改下数据库的配置就可以运行了。
来源:https://juejin.im/post/5be24149f265da61461da466


猜你喜欢
- python replace函数替换无效问题str = "hello,china!"str.replace("
- 最近的业务中涉及到这样一个需求,在线培训的系统需要知道用户对某个在线预览的页面追踪用户的预览时长。初步我们首先想到借助 Vue 页面的生命周
- 本文实例讲述了Python爬虫实现简单的爬取有道翻译功能。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-#!p
- 当我们用一个构造函数创建对象时,其属性就会被添加到this中去。并且被添加到this中的属性实际上不会随着实体发生改变,这时,我们这种做法显
- 概念panic 与 recover 是 Go 的两个内置函数,这两个内置函数用于处理 Go 运行时的错误。panic用于主动抛出错误, re
- 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据
- 本文实例讲述了mysql索引基数概念与用法。分享给大家供大家参考,具体如下:Cardinality(索引基数)是mysql索引很重要的一个概
- 索引和切片相当于是对数组中内容的读(read)或者查询(inquiry)。是我们获取有用信息(demanded infomation)的重要
- lstm(*input, **kwargs)将多层长短时记忆(LSTM)神经网络应用于输入序列。参数:input_size:输入'x
- 目录图片验证码登陆点击个人用户登录获取图片验证码识别并登陆识别较复杂验证码算法其他上一篇介绍了使用python模拟登陆网站,但是登陆的网站都
- Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形
- 问题(来自Udacity机器学习工程师纳米学位预览课程)用 Python 实现函数 count_words(),该函数输入字符串 s 和数字
- import numpy as npimport pandas as pdimport matplotlib.pylab as pltif
- 本文实例为大家分享了python抖音表白程序的具体代码,供大家参考,具体内容如下import sysimport randomimport
- 加在< head>中< SCRIPT LANGUAGE="JavaScript">//more
- 作为一个mod_python模块的替代,你可以考虑使用mod_wsgi模块,此模块开发的时间比mod_python的开发时间离现在更近一些,
- PyMysql使用详解在编写小脚本时,PyMysql是快速连接并操作数据库的一个不错选择。安装pip3 install PyMysql# 可
- 我们经常会看到后缀名为.pt, .pth, .pkl的pytorch模型文件,这几种模型文件在格式上有什么区别吗?其实它们并不是在格式上有区
- 为什么会用到 replace取名是一个很有讲究的事情,但每个人都不一样。一开始,我写了一个 A 项目,代码仓名称为 project-alph
- 如下所示:import pandas as pdfile = pd.read_csv('file.csv',iterator