スポンサーリンク

このドキュメントの内容は、以下の通りです。

はじめに

TSVとは、Tab Separated Values の略です。タブを区切り文字として使ったフォーマットの形式のファイルのことをいいます。TSV とは CSV (Comma Separated Values) の親戚です。CSV や TSV ファイルは、マイクロソフトのエクセル(Excel)などで作成できます。もちろん、エディタなどでも簡単に作成できます。

CSV/TSV は、いろいろなところで使われるファイルです。今日もおびただしい数のCSV/TSVのファイルたちが世界中で作成されているに違いありません。

ここでは、pythonを用いて、TSVファイルを読み書きする方法について紹介いたします。

TSVファイルとは

TSVファイルは、タブを区切り文字として使ったフォーマットのファイルです。1つ1つのデータがタブで区切られて、ファイルに格納されています。
CSVファイルの親戚です。CSVファイルは、カンマ区切りでデータが保存されています。

たとえば、CSVでは、このようなデータです。
1,foo
2,bar

TSVだと、以下のようなデータです。以下の例では、\t はタブを意味します。
1\tfoo
2\tbar

TSVファイルの拡張子

TSVファイルの拡張子は、 .tsvです。そのままですね。 なお、CSVファイルの拡張子は .csv です。

csv モジュール

TSV ファイルを読むには、 csv モジュールを使用します。

csvとtsvを扱うときの違い

CSVファイルとTSVファイルを扱うときに、違うのはなんでしょうか?

違いは、区切り文字が、カンマかタブかの違いだけです。
そのため、プログラミングをするときの違いは、デミリタと呼ばれる区切り文字の指定が、カンマか、タブかの違いしかありません。

そのため、CSVのプログラムをほぼそのまま使いまわすことができます。

サンプルのTSVファイル


以下の内容の data.tsv というファイルがあったとします。
foo	bar	123
hoge	meta	567

TSVを読み込むサンプルプログラム


TSV を読み込むプログラムは、基本的には、ほぼ CSV を読み込むプログラムと一緒です。唯一違うとすれば、 csv.reader 関数に渡す、デリミタのパラメータを付けるか付けないか、です。もちろん、CSV の時にデミリタを指定してもよいですが、デフォルトのデミリタが使われるので、通常は必要ありません。

TSVファイルを読み込む、サンプルのソースコードは以下の通りです。
#! /usr/bin/env python
import csv
f = open("data.tsv", 'r')
tsv = csv.reader(f, delimiter = '\t')
for row in tsv:
    print(row)
f.close()

配列になっているので
print(row[0])
print(row[1])
print(row[2])

とすると、それぞれの値を表示することができます。

TSVを書き込むサンプルプログラム


TSVファイルを作成する場合には、ファイルを書き込み用でオープンします。 csv.writer で writer を作成して、 writerows でデータをファイルに書き込みます。

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import csv
data = [[1, 'foo'], [2, 'bar'], [3, 'hoge']]
f = open('write1.tsv', 'w')
writer = csv.writer(f, delimiter='\t')
writer.writerows(data)
f.close()


ダブルクォートで値を囲む場合には、 quoting を指定します。以下の例の csv.QUOTE_NONNUMERIC では、数値以外の値をクォートします。
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import csv

data = [[1, 'a,b,c'], [2, 'd,e,f'], [3, 'x y z']]

f = open('write2.tsv', 'w')
writer = csv.writer(f, delimiter='\t', quoting=csv.QUOTE_NONNUMERIC)
writer.writerows(data)
f.close()

write2.tsv の内容は以下の通りです。
1	"a,b,c"
2	"d,e,f"
3	"x y z"

まとめ

  • TSVを扱い場合は、csvモジュールを利用すると簡単に扱える
  • CSVとTSVの違いは、区切り文字のみ。

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー