44

テーブルを出力するプログラムがあり、csv 形式と tsv 形式の間に利点/欠点があるかどうか疑問に思っていました。

4

5 に答える 5

50

TSV は、Javascript/Perl/Python が入力情報を失うことなく処理するのに非常に効率的であり、人間にとっても読みやすいものです。

この形式は、公開リリース以来 4store でサポートされており、かなり広く使用されています。

私の見方は、CSV はスプレッドシートにロードするためのものであり、TSV は特注のソフトウェアで処理するためのものです。

ここで、それぞれの技術仕様を確認できます。

于 2012-06-21T00:49:59.850 に答える
23

選択はアプリケーションによって異なります。簡単に言うと、フィールドにコンマが含まれていない場合は、CSV を使用してください。それ以外の場合は、TSV が最適です。

TL;DR

どちらの形式でも、デリミタがフィールド内に現れる可能性がある場合に問題が発生するため、デリミタがフィールド セパレータとしてではなく、フィールド内の値として機能していることを示す必要があります。

たとえば、CSV を使用する場合: Kalman, Rudolfvon Neumann, JohnGabor, Dennis

いくつかの基本的なアプローチは次のとおりです。

  • フィールド内に表示されるすべての区切り記号を削除します。

    Kalman Rudolf, von Neumann John,Gabor Dennis

  • 文字をエスケープします (通常、前にバックスラッシュを追加します\)。

    Kalman\, Rudolf, von Neumann\, John,Gabor\, Dennis

  • 各フィールドを他の文字 (通常は二重引用符") で囲みます。

    "Kalman, Rudolf", "von Neumann, John","Gabor, Dennis"

CSV

フィールドはコンマで区切られます,

例えば:

Name,Score,Country
Peter,156,GB
Piero,89,IT
Pedro,31415,ES

利点:

  • ほとんどのソフトウェアパッケージは設定をいじらずに読むことができるため、技術者以外の人と共有する場合は、より一般的で便利です。

短所:

  • フィールド内のコンマをエスケープすることは、誰もが基準に従っているわけではないため、イライラすることがあります。
  • 余分なエスケープ文字と引用符はすべて、最終的なファイル サイズに重みを加えます。

TSV

フィールドは表<TAB>または\t

例えば:

Name<TAB>Score<TAB>Country
Peter<TAB>156<TAB>GB
Piero<TAB>89<TAB>IT
Pedro<TAB>31415<TAB>ES

利点:

  • フィールド内にタブ文字があるのは通常ではないため、区切り文字をエスケープする必要はありません。それ以外の場合は、削除する必要があります。

短所:

  • あまり普及していません。
于 2016-05-12T22:15:55.747 に答える
2

一般的にcsvはtsv形式よりもサポートされることが多いと思います。

于 2012-06-21T00:49:59.507 に答える