ラベル TSV の投稿を表示しています。 すべての投稿を表示
ラベル TSV の投稿を表示しています。 すべての投稿を表示

2019年10月2日水曜日

SQLite3 TSVデータを取り込む、TSVデータを出力する

概要

テキストデータであるTSVファイルをSQLite3に入力/出力させる方法。
コマンドラインツールから利用する。
自作のスクリプトでテキストを読込/出力、DBに接続してinsert/selectをやるよりはるかに簡単。
取り込む処理はインポート・バルクロード、出力する処理をエクスポートと言ったりする。

TSVのフォーマットについて

IANAによってMIMEタイプ tsv/tab-separated-values として定義されている。
http://www.iana.org/assignments/media-types/text/tab-separated-values

  • フィールド(列)はTABで区切る
  • レコード(行)は改行で区切る
  • 各行のTABの数は同じでなければならない
といったところ。

構文

TSVファイルのインポート

.mode tab
.import file_path table_name
                    

もしくは


.mode tab
.import file_path
                    
TSVファイルのエクスポート

.mode tab
.once file_path
select...
                    

TSVファイルを読み込む

インポート先として指定した名前のテーブルが存在しているかどうかで挙動が異なる。

既にテーブルがある
  • TSVの一行目もデータとして登録される。
    一行目が不要なら、あらかじめ削除しておく必要がある。
  • テーブルのカラム数・データ型にTSVも合わせる必要がある。
    合っていない場合、エラーになる。
テーブルがない
  • 指定したテーブル名で新しくテーブルが作られる。
  • TSVの一行目がカラム名になり、二行目以降がデータとして挿入される。
  • カラムのデータ型は全てTEXT型になる。
環境
  • Windows 10 64bit
  • SQLite3 ver.3.29.0
実行例

sqlite> -- # 1.
sqlite> .mode tabs
sqlite> -- # 2.
sqlite> .import sample.tsv sample_table
                
  1. tabs(タブ区切り)モードに切り替え
  2. sample.tsv ファイルを sample_tableに挿入

TSVファイルを書き出す

  • エスケープ処理等はないので、データにTABが含まれていないかあらかじめ確認しておく。
  • 出力先に同名のファイルが存在していても、上書き確認はしてくれない。
実行例

sqlite> -- # 1.
sqlite> .mode tabs
sqlite> -- # 2.
sqlite> .once result.tsv
sqlite> -- # 3.
sqlite> select * from sample_table;
                
  1. tabs(タブ区切り)モードに切り替え
  2. .once」 コマンドで次のコマンドの結果をresult.tsvに出力
  3. 出力したい内容のコマンドを実行

参考URL

2019年8月28日水曜日

サクラエディタでCSV, TSVファイルを開く

概要

CSV, TSVファイルをサクラエディタで見やすく表示させるための設定。

CSV対応

CSV用の設定を作成する。

  1. 設定
  2. タイプ別設定一覧
  3. 追加(A)
  4. 設定変更
「スクリーン」タブ
設定の名前(N) CSV
ファイル拡張子(X) csv
折り返し方法(<) 折り返さない
表示モード
(デフォルトが「通常」となっているコンボボックス)
CSV
「カラー」タブ
カーソル位置縦線 チェックをつける
偶数行の背景色 チェックをつける
半角空白 チェックをつける

TSV対応

TSV用の設定を作成する。
上記 CSV用の設定を流用します。

  1. 設定
  2. タイプ別設定一覧
  3. CSVの設定を選択して「複製(C)」
  4. 設定変更
設定の名前 TSV
ファイル拡張子 tsv
表示モード
(デフォルトが「通常」となっているコンボボックス)
TSV

あとは必要に応じて拡張子をサクラエディタに関連付ければいい。

矩形モードを利用する

Altキー + 矢印キー、もしくは Altキー + マウスでドラッグ することで テキストを矩形選択することが出来る。 これでカラム単位で編集が可能になるが、カンマやタブを削除しないよう注意すること。

操作してみるとわかるが、サクラエディタのCSV,TSVモードは「見やすくなる」程度の機能。
ダブルクォーテーションの取り扱いやエスケープ文字など非対応な要素がいくつかある。

CSV, TSVを編集するなら

純粋なCSVエディタとしては「cassava editor」が個人的には使いやすい。
余計な表計算式などを処理せず、純粋にテキストデータを編集できる。

次点でLibreOfficeのcalc

Microsoft Office Excel は色々余計な事をしてくれるのでCSVエディタとしては使いにくい。

参考URL