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 で要素を使用するための完全な手順

推薦する

Docker コンテナにデプロイされた Django のタイムゾーンの問題

目次Django でのタイムゾーン設定USE_TZ=真USE_TZ=偽Linux コンテナでのタイム...

Vue カプセル化コンポーネント ツール $attrs、$listeners の使用

目次序文$属性例: $listeners (公式説明)使用シナリオ要約する序文複数レベルのコンポーネ...

MySQL MHA のセットアップと切り替えに関するいくつかのエラー ログの概要

1: masterha_check_repl レプリカ セット エラー レプリケートが構成ファイルで...

Linux での Jenkins の詳細なインストール手順

目次1. JDKをインストールする2. Jenkinsをインストールする3. Jenkinsの設定を...

Nodejs でタイムドクローラーを実装する完全な例

目次事件の原因Node Scheduleを使用してスケジュールされたタスクを実装する1. node-...

InnoDB タイプの MySql によるテーブル構造とデータの復元

前提条件: データベースを復元するために必要な .frm ファイルと .ibd ファイルを保存します...

透明な入力ボックスにアイコンを追加する HTML コード

最近、弁護士推薦のウェブサイトを作成していたのですが、検索ボックスに問題がありました。検索ボックス内...

JavaScript コードベースをよりクリーンにする 5 つの方法

目次1. 短絡や条件文の代わりにデフォルトのパラメータを使用する2. 複数の条件の処理3. スイッチ...

vue-video-player でのブレークポイント再開の実装

最近のプロジェクトでは、ブレークポイントからビデオの再生を再開する機能を実装する必要がありました。こ...

VMware Workstation 14 Pro インストール Ubuntu 16.04 チュートリアル

この記事では、VMware Workstation14 ProにUbuntu 16.04をインストー...

Vue-Routerのインストールと使用方法の詳細な説明

目次インストールルーティングの基本構成Vue にルーターをインストールするルーターの設定Router...

Vuex全体のケースの詳細な説明

目次1. はじめに2. 利点3. 使用手順1. Vuexをインストールする2. Vuexを参照する3...

MySQL でレプリケーション フィルターを動的に変更する方法

MySQLはレプリケーションフィルターを動的に変更します今日遭遇した問題についてお話しします。今日は...

WindowsでiTunesのバックアップパスを変更する方法

0. 準備: • iTunesを閉じる• タスクマネージャーでiTunesから始まるサービスを終了し...

JavaScript で大きなファイルの並列ダウンロードを実装する方法

目次1. HTTP範囲リクエスト1.1 範囲構文2. 大きなファイルをダウンロードする方法2.1 補...