中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中將txt導入到mysql的方法教程

發布時間:2020-10-08 21:40:53 來源:腳本之家 閱讀:196 作者:Cassie1492949236626 欄目:服務器

前言

昨天寫小項目的時候遇到了一個需求:把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)

針對不同的分隔符修改一下正則表達式即可。全部代碼都貼上去了,直接復制修改下數據庫的配置就可以運行了。

總結:

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

萍乡市| 正蓝旗| 兴仁县| 永济市| 阿荣旗| 正宁县| 遂平县| 齐齐哈尔市| 河池市| 兴和县| 岱山县| 新龙县| 丰原市| 武清区| 图们市| 汉沽区| 田东县| 呼玛县| 黑龙江省| 蒙城县| 天峨县| 禄丰县| 平陆县| 土默特右旗| 兴隆县| 徐州市| 射阳县| 浦东新区| 钦州市| 兴国县| 绥宁县| 德令哈市| 大连市| 邯郸县| 富锦市| 东阿县| 云和县| 买车| 大丰市| 嘉定区| 西安市|