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 はデータを正常に挿入しますが、[Err] 1055 エラーが報告されます。解決策

1. 質問:最近、挿入操作を行っています。MySQLのバージョンは5.7です。挿入は成功しますが、エ...

Windows 10 に Apache 2.4.41 をインストールするチュートリアル

1. Apache 2.4.41 のインストールと設定最初のステップは、以下に示すように、https...

VMware15.5 インストール Ubuntu20.04 グラフィック チュートリアル

1. インストール前の準備1. 公式ウェブサイトからUbuntu 20.04のイメージファイルを直接...

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

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

HTML マウス CSS コントロール

一般的に、マウスは上向きの斜め矢印として表示され、テキストの上に移動すると垂直線になり、ハイパーリン...

CSS で複数の境界線を実装するためのヒント

1. 複数の国境[1]背景: ボックスシャドウ、アウトライン使用シナリオの多様性を考慮すると、複数の...

データベースを削除して逃げる?xtraback を使用して MySQL データベースをバックアップする方法

1. mysqldump バックアップ方法では論理バックアップが使用されます。最大の欠点は、バック...

MySQLのorder byとlimitを混在させる際の落とし穴の詳細な説明

MySQL では、ソートには order by を、ページングには limit をよく使用します。最...

Vue3とElectronを使ったデスクトップアプリケーションの詳しい説明

目次Vue CLIはVueプロジェクトを構築しますVue プロジェクトをマークダウン エディターに変...

Bash スクリプトを使用して Linux のメモリ使用量を監視する方法

序文Linux システムのパフォーマンスを監視するために使用できるオープンソースの監視ツールが市場に...

Day.js をベースにした JavaScript での日付処理のよりエレガントな方法

目次day.js を使用する理由モーメントデイ.js day.js がなければどうなるでしょうか? ...

Mysqlの日付と時刻関数を扱う記事

目次序文1. 現在の時刻を取得する1.1 現在の日付と時刻を返す1.2 現在の日付を取得する1.3 ...

ネイティブ JavaScript でシンプルな Gobang ゲームを実装する

この記事では、JavaScriptで簡単なGobangゲームを実装するための具体的なコードを参考まで...

MySQL マスタースレーブレプリケーション 読み書き分離の設定方法の詳細説明

1. 説明前回は、MySQL のインストールと構成、MySQL ステートメントの使用、MySQL デ...

Vue でのルータービューコンポーネントの使用に関する詳細な説明

Vue プロジェクトを開発する場合、さまざまなコンポーネント ページを表示するために切り替えることが...