Linux で txt を mysql にインポートする方法

Linux で txt を mysql にインポートする方法

序文

昨日、小さなプロジェクトを書いていたときに、txt ドキュメントのデータを mysql データベースにインポートするという要件に遭遇しました。最初は、Mysql Workbench を使用して TXT ファイルを直接インポートしたかったのですが、結局、TXT のインポートをサポートしていないことがわかりました。その結果、TXT を Excel に変換し、Linux にインポートすると、さまざまなコード文字化けの問題が見つかりました。

プログラマーにできないことはないという理念のもと、インポート用のファイルを直接操作する Python コードを書きました。結果として、10,000 件を超えるレコードを含むファイルが作成され、インポート時間は約 2 分です。

具体的なコードは次のとおりです。

  • mysqlpython.py ファイル: mysql データベースに接続するためのカスタム クラス
  • importtxt.pyファイル: TXTファイルを読み取り、挿入します
  • dict.txtファイル: 操作対象となるTXTファイル

mysqlpython.py ファイル

pymysql からのインポート *

クラスMysqlpython:
 def __init__(self,データベース,ホスト="localhost",
     ユーザー="root",パスワード="123456",
     文字セット="utf8",ポート=3306):
  self.database = データベース
  self.host = ホスト
  self.user = ユーザー
  self.password = パスワード
  self.charset = 文字セット
  self.port = ポート
  

 # データ接続とカーソルオブジェクトを作成する def open(self):
  self.db = connect(host=self.host,
     ユーザー=自己.ユーザー、
     パスワード=自分自身のパスワード、
     ポート=自己.ポート、
     データベース=self.database、
     文字セット = self.charset)
  self.cur = self.db.cursor()

 # カーソルオブジェクトとデータベース接続オブジェクトを閉じます def close(self):
  自己.cur.close()
  自己.db.close()

 # sqlコマンドを実行します def zhixing(self,sql,L=[]):
  自己オープン()

  自己.cur.execute(sql,L) を実行します。
  自己.db.コミット()

  自己.閉じる()

 # クエリ関数 def all(self,sql,L=[]):
  自己オープン()
  自己.cur.execute(sql,L) を実行します。
  結果 = self.cur.fetchall()
  結果を返す


__name__ == "__main__" の場合:
 sqlh = Mysqlpython("辞書") 
 sel = "ユーザーから*を選択"
 r = sqlh.all(選択)
 印刷(r)

importtxt.py ファイル

輸入再
インポートシステム
mysqlpythonからMysqlpythonをインポート
sqlh = Mysqlpython("辞書")

def insert(データ):
 arr = データ分割()
 名前 = arr[0]
 説明 = " ".join(arr[1:])
 ins = "単語(名前、説明) に値(%s、%s) を挿入"
 sqlh.zhixing(ins,[名前,説明])

get_addr() を定義します:
 f = 開く('./dict.txt')
 行 = f.readlines()
 行内の行の場合:
  挿入(行)
 f.close()
 戻る ''


__name__ == '__main__' の場合:
 印刷(get_addr())

dict.py ファイル (複数のファイルをコピーしました)

不確定な芸術
そろばん n. 平行棒に沿ってスライドするビーズが付いた枠。子供に数を教えたり、(一部の国では)数を数えるのに使われる。
放棄する、(人や物や場所から)立ち去る、戻るつもりがない、見捨てる、捨て去る
放棄、n. 放棄
abase v. ~ 自分自身/他人の尊厳を下げる; 自分自身/他人の品位を下げる;
恥ずかしめる、落ち着きや自信を破壊する:当惑させる
abashed adj. ~ 恥ずかしい; 恥じた
軽減する、少なくする
abattoir n. = 屠殺場(屠殺)

異なる区切り文字に一致するように正規表現を変更するだけです。すべてのコードはここに貼り付けられています。データベース構成をコピーして変更し、実行するだけです。

要約:

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Python で txt データを mysql にインポートする方法
  • Linux で SQL ファイルをインポートする方法 (コマンド ラインを使用して MySQL データベースを転送する)
  • Linux で MySQL データベースのインポートおよびエクスポート コマンドを実装する方法
  • Linux システムでの MySQL データベースのインポートとエクスポート
  • Linux VPS/サーバー上でMySQLデータベースを簡単にインポートおよびエクスポートするいくつかの方法

<<:  MySQLの自己接続と結合の詳細な理解

>>:  vue3.0 で要素を使用するための完全な手順

推薦する

各グループの最新データを取得するためにMySQLベースのグループを実装する

序文:グループ化関数はグループ内の最初のデータを取得しますが、各グループ内の最新のデータを取得する必...

CentOS7にPostgreSQL11をインストールする方法

CentOS 7にPostgreSQL 11をインストールする PostgreSQL: 世界で最も先...

Dockerfile をベースに Zabbix 監視システムのコード例を作成する

forループを使用してZabbixイメージをコンテナにインポートします。 n を `ls *.tar...

ウェブページ制作と饅頭の関係(体験の共有)

昨日は遅くまで寝ていて、一日中起きていました。私の年齢では、夜更かしして本を書くのはもう無理のようで...

CentOS 7にDockerをインストールする

Linuxシステムをお持ちでない場合は、ダウンロードとインストールについてはhttps://www....

入力テキスト ボックスと画像検証コードの位置合わせの問題 (画像は常に入力より 1 つ上になります)

Web ページ制作では、input と img が同じ行に配置されることが多く、img タグが常に ...

HTML テーブル マークアップ チュートリアル (5): ライト ボーダー カラー属性 BORDERCOLORLIGHT

表では、左上の境界線の色を個別に定義したり、セルの右下の境界線の色を定義したりできます。これら 2 ...

Sublime TextがUbuntuで中国語を入力できない問題の最も簡単な解決策

崇高なSublime Text はコード エディター (Sublime Text2 は有料ソフトウェ...

win10にUbuntu18デュアルシステムをインストールするとmmx64.efiが見つからないという問題が発生する

Ubuntu 18のインストール中に、USBディスクからUbuntuのインストールを開始すると、mm...

MySQL 8.0 の新しいリレーショナル データベース機能の詳細な説明

序文MySQL 8.0 の最新バージョンは 8.0.4 rc であり、正式版は近日中にリリースされる...

Ubuntu で .sh ファイルを実行するいくつかの方法の違いについて簡単に説明します。

序文特に bash 環境では、スクリプトの実行方法によって結果が異なります。スクリプトを実行する方法...

xtrabackup による MySQL データベースのバックアップと復元

mysqldump バックアップは、その独自の特性 (テーブルのロック、基本的に挿入スクリプトまたは...

Vueは画像切り替え効果を実現

この記事の例では、画像切り替え効果を実現するためのVueの具体的なコードを参考までに共有しています。...

docker で nginx+php+mysql を設定する方法

まず、方法を理解します。 docker exec を使用して Docker コンテナに入るDocke...

MySQLインデックスマージの使い方

インデックスのマージは、MySQL が最下層で提供するインテリジェントなアルゴリズムです。インデック...