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 の不正な文字列値の解決方法

MySQL を使用して中国語の文字を挿入すると、多くの友人から次のエラーが報告されます。 これは、文...

react-diagram シリアル化 Json 解釈 ケース分析

このドキュメントの目的はreact-diagramフレームワーク モデルの Json シリアル化を説...

JavaScriptにおけるこのポインティング問題の詳細な説明

序文信じてください。この記事の 7️⃣ ステップを覚えておけば、JS の this リファレンスを完...

CentOS 8.4 での Docker パッケージのオフラインインストールの問題について

使用する仮想マシンは、サーバー環境をシミュレートする CentOS 8.4 です。外部ネットワークに...

docker createコマンドの使用方法

docker create コマンドは、イメージに基づいてコンテナを作成できます。このコマンドの効果...

CSS3+ベジェ曲線でスケーラブルな入力検索ボックス効果を実現

では、早速レンダリングを見てみましょう。 コア コードはtransition: cubic-bezi...

Vueウォッチの監視方法の概要

目次1. Vueにおけるwatchの役割はその名の通り、監視の役割です。 2. このオブジェクトのプ...

Google の新しい UI から学べること (画像とテキスト)

2011 年に最も顕著なウェブサイトの変更は、一連の製品に新しいユーザー インターフェースを導入した...

初心者向けの一般的な Linux システムコマンドの完全なリスト

Linux コマンドの学習は、ほとんどの初心者にとって最大の障害です。今日は、Linux システムで...

WHMCS V7.4.2 グラフィカル インストール チュートリアル

1. はじめにWHMCS は、ユーザー管理、請求書の支払い、ヘルプ サービスなど、オンライン ビジネ...

Tomcat Nativeを使用してTomcat IO効率を向上させる方法の詳細な説明

目次導入Tomcatへの接続方法APR と Tomcat ネイティブtomcat で APR を使用...

Tomcat Nginx Redis セッション共有プロセス図

1. 準備ミドルウェア: Tomcat、Redis、Nginx Jar パッケージ: commons...

CSS で縦書きテキスト配置を実装する方法 (概要)

HTML でのテキストのデフォルトの配置は水平ですが、特殊な場合にはテキストを垂直に配置する必要が...

3 階層ナビゲーション メニューを実現するための js+css

この記事の例では、3レベルのナビゲーションメニューを実装するためのjs + cssの具体的なコードを...

Windows 環境に mysql-8.0.11-winx64 をインストールする際に発生する問題を解決する

MySQL インストール パッケージをダウンロードします。mysql-8.0.11-winx64 を...