読者です 読者をやめる 読者になる 読者になる

アメリエフのブログ

Amelieff Staff Blog

Pythonでタブ区切りテキストの読み込み

バイオインフォマティクス
世の中には、2種類の人間がいる。
タブ区切りテキストを使う人と、使わない人だ。

こんにちは、タブ区切りテキストを使う人、久保(kubor)です。
Pythonでタブ区切りテキストを読み込むときは、csvライブラリが便利です。
標準ライブラリなので環境依存をそれほど考えなくて良いです。

以下にBEDファイルのヘッダー以降について、「end」と「行番号」を出力する例を示しました。

5行目のdelimiter='¥t'としているのがポイントです。
ここを変えればどんな区切り文字でも対応できます。

6行目のnext(reader)で、sample.tsvのヘッダーを飛ばしています。

行番号の取得はline_num()メソッドを使います。

sample.tsv
chr    start    end
chr1 18900 19356
chr2 1133 35211
chr3 21234 552312

サンプルスクリプト
import csv
tsv_file = sample.tsv
with open(tsv_file, 'r') as f:
reader = csv.reader(f, delimiter='¥t')
next(reader)
for row in reader:
print reader.line_num, row[2]
2 19356
3 35211
4 552312
ファイルハンドルは、with文を使うとスッキリするので好きです。