2006年05月27日 00:20 [Edit]

TSV vs CSV

その通りです、otsuneさん。

404 Blog Not Found:たった一つの冴えたMicrosoft製品
ItoGさんのコメント
typo: tsv → csv
otsuneさんのコメント
>typo: tsv → csv tsvって「タブ区切りテキスト」のことだよね?

表計算をtextとしてpasteするとTSV(Tab Separated Values)に、ExcelでText FileにsaveするとCSV(Comma Separated Values)になるのですが、私はTSV派です。


なんといっても、TSVの方が、圧倒的に処理が楽なのです。CSVは、実はきちんと処理するのが難しく、「CSVを処理するにはどうしたらいいの?」というのはPerlに限らず、スクリプト言語の世界ではかなりよく見るFAQです。今でこそText::CSVというModuleがありますが、これがTSVなら、

my @fields = split /\t/, $line;

で済みます。サルでも出来ます。

「でも、CSVの方が、どこで区切れているか目で見えるからやさしい」という意見もあります。が、値そのものに,(comma)が含まれている場合、それを""でくくらねばなりません。こうなってくると可読性もへったくれもなくなってきます。

もちろん、値に区切り文字(delimiter)が含まれる場合にどうするかという問題は、tsvにだってあるのですが、tabが値に表れる場合は、commaが値に表れる場合よりずっと少ないのです。そもそもExcelのcellもHTMLのformも、tab文字を値として入力するのはしごく困難ですが、commaの入力は難なく受け付けます

なるべくTSVを使うようにしましょう。Excelでもちゃんと読めますし、Excelからもコピペという手段でTSVは作れるのですから。

Dan,the,Commaphobia


この記事へのトラックバックURL

この記事へのトラックバック
Danさんのエントリ「TSV vs CSV」から... 表計算をtextとしてpasteするとTSV(Tab Separated Values)に、ExcelでText FileにsaveするとCSV(Comma Separated Values)になるのですが、私はTSV派です。 AWKでプログラミングに目覚めたので、断然TSV派です。 FS = \"?...
TSVに拡張子を要求する!【TechEye】at 2006年06月05日 14:42
このことに異論はないのだけど、 CodeZine:PerlによるCSVファイルの高速集計(CSV, 入門, Perl)特によく利用されるテキストファイルとして、CSV形式が挙げられます。CSVを集計したい場合、Excelに読み込ませて集計関数やマクロを駆使しているという人も多いかと思い...
perl - CSVはText::CSVで【404 Blog Not Found】at 2007年02月16日 14:44
エクセルシートをタブ区切りtxt形式でエクスポートするマクロ。 書き方は前回の記...
[Exel VBA]シートをタブ区切りテキスト(txt)形式で保存する【DQN起業日記】at 2008年05月29日 05:32
エクセルシートをタブ区切りtxt形式でエクスポートするマクロ。 書き方は前回の記事(CSVで保存)とほぼ同じです。...
[Exel VBA]シートをタブ区切りテキスト(txt)形式で保存する【DQNEO起業日記】at 2011年08月01日 04:27
この記事へのコメント
TSVで改行ってどうやるの?
CSVなら""でくくればいいけど。
Posted by at 2006年05月27日 00:53
私もかの記事を読んだときに「tsv?」
と思ってIT用語辞典を調べてしまいました。

思うにExcelで保存するときにCSVは
CSVと書かれているのに対して、
TSVは「テキスト(タブ区切り)」と呼ばれているので
TSVという言葉自体の馴染みが少ないのでしょう。(もちろん私もですが。)

しかも、用語辞典によればTSVは拡張子が規定されていない
ということで、ファイルを見ただけでは.txtですから
可用性はともかく、認知度が低すぎるのではないでしょうか。
Posted by 九龍 at 2006年05月27日 00:59
""さん、
\nが多いですね。
改行に限らず、literalで書くときに\でescapeするものは\とすることが多いですね。\tを一意にfield separatorとして使うのと同様に、\nを一意にrecord separatorとして「決め打ち」できるのもtsvのいいところかと。\nDan the Tabphilia
Posted by at 2006年05月27日 01:26
TSV、そんなに認知度低くないと思う…。ごめんね、かあさんニッチかもしれないけどごめんね…。

ちなみに、
 Excel→テキストコントロール
にコピーアンドペーストしたときにTSV形式で貼り付けられるのはもちろんですが、
 テキストデータ(TSV形式)→Excel
と、逆方向にコピーアンドペーストしたときもセル単位で貼り付けられるという超便利な機能がありますよね。ぼくはこちらのほうを重宝しています。

Excelはやっぱ最強だぜ!
Posted by Bar at 2006年05月27日 06:27
私の中では"何かで区切ったテキストはcsv"という認識でした
メジャーなモノだったのですね
お目汚し失礼
Posted by ItoG at 2006年05月27日 10:39
データ中にタブがある場合どうなるの?

改行を \n とした場合、\n という文字そのものを入れたい場合は?

結局 CSV も TSV も処理することは同じじゃないの?
Posted by a at 2007年10月06日 01:45
ええい!たわけども!!

解決策は固定長レコードに決まっておるだろう!
Posted by ぴなこ at 2008年01月31日 13:55