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
確認のため先頭部分を表示している.