sqlite3のDBを作成し、csv/tsvファイルの内容をsqlite3のtableとして格納する汎用スニペット?です。
簡易的にcsvファイルをdb化してパパッと操作したいときに使うことを想定しています。
- python3
- sqlite3
- ヘッダー付のcsv/tsvファイルを想定しています(ヘッダーがそのままカラム名になります。)
- 日本語を含む場合はutf-8で。
- 型チェックやプライマリーキー設定はしません。全部TEXTとして放り込みます。
スクリプトをcsv2sqlite.pyとして保存し、コマンドラインから引数を与えて実行します。
- args[1] : 必須 : インプットとなるcsv/tsvファイルのパス
- args[2] : 必須 : 対象のDBファイルのパス、存在しなければ新規作成
- args[3] : 必須 : 対象のテーブル名、存在しなければ新規作成、存在すれば一度トランケートしてからインサートします(注意)
- args[4] : 任意 : "csv"か"tsv"を指定。何もなければcsvとして処理します
例:python csv2sqlite.py data/input.tsv newdb.db main tsv