kuroの覚え書き

96の個人的覚え書き

PythonでSQLiteのTableにtsvからインポート

https://pypi.python.org/pypi/swadr/1.2.1
これがかんたんに使えそうな感じ。
.importする代わりにINSERTで1行ずつ入れていくのが常法なようだけど、カラム数が多いとちょっと面倒だし。

とおもったらpipでインストールできないよ。

作業用データベース・テーブルを作成するpythonスクリプト

import sqlite3
dbpath = './test.db'
connection = sqlite3.connect(dbpath)

#作業用tableを作成
sql = "create table bam_update(SampleName_phenotype text, BAM_file text);"
connection.execute(sql)

connection.close()

なんだけど
tableにimportするのはpythonよりshellのほうが得意っぽい

sqlite3 -separator $'\t' ./test.db ".import samp.txt temp"

とするとtest.dbのtempテーブルにsamp.txtがtab区切りでインポートされる。

テーブルを作成するのも

sqlite3 ./test.db "CREATE TABLE temp(SampleName_phenotype text, BAM_file text);"

これでいける。

SELECTした結果をファイルに出力するなら

sqlite3 -separator $'\t' ./test.db "select BAM_file from bam_update" > output_bam.txt

このように。
これで一連の操作をpythonとshellスクリプトで一気処理が可能となった。