CSV ファイルの処理,Excel ファイルを CSV ファイルに変換,CSV ファイルの変換,CSV ファイルから SQL テーブル定義と INSERT 文を生成(csvkit を使用)
csvkit のドキュメント: https://csvkit.readthedocs.io
1. 前準備
Python の準備(Windows,Ubuntu 上)
- Windows での Python 3.10,関連パッケージ,Python 開発環境のインストール(winget を使用しないインストール): 別ページ »で説明
- Ubuntu では,システム Pythonを使うことができる.Python3 開発用ファイル,pip, setuptools のインストール: 別ページ »で説明
【サイト内の関連ページ】
- Python のまとめ: 別ページ »にまとめ
- Google Colaboratory の使い方など: 別ページ »で説明
【関連する外部ページ】 Python の公式ページ: https://www.python.org/
csvkit のインストール
csvkit のインストール
- Windows の場合
Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択).
次のように操作する.
python -m pip install csvkit
- Ubuntu の場合
端末で,次のコマンドを実行する.
sudo apt -y install csvkit python3-csvkit
2. CSV ファイルの処理
- カラム名(列名)の表示: csvcut -n a.csv
- カラム名を指定して,取り出す: csvcut -c a1,a2,a3 a.csv
- カラムの並べ替え: csvcut -c a3,a2,a1 a.csv
- CSV ファイルの情報表示: csvstat a.csv
3. Excel の xlsx ファイルを CSV ファイルに変換 (in2csv)
- 前準備として Excel の xlsx ファイルを準備
ここでは,csvkit に同封されているデータファイルである ne_1033_data.xlsxを, 次の URL からダウンロードして使用. https://github.com/wireservice/csvkit/tree/master/examples/realdata
- in2csv コマンドにより,Excel の xlsx ファイルを CSV ファイルに変換
in2csv ne_1033_data.xlsx > ne_1033_data.csv
4. CSV ファイルから JSON ファイルを生成 (csvjson)
- 前準備として CSV ファイルを準備
ここでは,次のURLから ks_1033_data.csvをダウンロードして使用. https://github.com/wireservice/csvkit/tree/master/examples/realdata
- csvjson コマンドにより,CSV ファイルを JSON ファイルに変換
csvjson ks_1033_data.csv > ks_1033_data.json
確認のため「more ks_1033_data.json」を実行している.
5. CSV ファイルから,テーブル定義(SQL コマンド)を生成 (csvsql)
- 前準備として CSV ファイルを準備
ここでは,次のURLから ks_1033_data.csvをダウンロードして使用. https://github.com/wireservice/csvkit/tree/master/examples/realdata
- テーブル定義の生成
csvsql ks_1033_data.csv > ks_1033_data.sql
確認のため「more ks_1033_data.sql」を表示している.
6. CSV ファイルから,SQLite 3 データベースと SQL の insert 文を生成 (csvsql, sqlite3 を使用)
SQLite 3 のインストール
CSV ファイルから,SQLite 3 データベースと SQL の insert 文を生成 (csvsql, sqlite3 を使用)
- 処理する CSV ファイル名: ks_1033_data.csv
- 生成するSQLite3 データベース名: ks1033.db
- 生成するSQL ファイル名: ks1033.sql
- Windows の場合
del ks1033.db csvsql --db sqlite:///ks1033.db --insert ks_1033_data.csv echo .dump | sqlite3 ks1033.db > ks1033.sql more ks1033.sql
確認のため表示している.
- Ubuntu の場合
rm -f ks1033.db csvsql --db sqlite:///ks1033.db --insert ks_1033_data.csv echo ".dump" | sqlite3 ks1033.db > ks1033.sql head -20 ks1033.sql
確認のため先頭部分を表示している.