Подтвердить что ты не робот

Выбор между tsv и csv

У меня есть программа, которая выводит таблицу, и мне было интересно, есть ли какие-либо преимущества/недостатки между форматами csv и tsv.

4b9b3361

Ответ 1

TSV очень эффективен для обработки Javascript/Perl/Python без потери  любую печатную информацию, а также легко читать людям.

Формат поддерживается в 4store с момента его публичного выпуска, и  это разумно широко используется.

Как я смотрю на это: CSV для загрузки в электронные таблицы, TSV  для обработки по заказу программного обеспечения.

Здесь вы можете найти техническую спецификацию.

Ответ 2

Выбор зависит от приложения. Вкратце, если ваши поля не содержат запятых, используйте CSV; иначе TSV - это путь.

TL; DR

В обоих форматах проблема возникает, когда разделитель может появляться в полях, поэтому необходимо указать, что разделитель не работает как разделитель полей, а как значение в поле, которое может быть более или менее болезненным,

Например, используя CSV: Kalman, Rudolf, von Neumann, John, Gabor, 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

Преимущества:

  • Не нужно снимать разделитель, так как обычно нет обычного символа табуляции в поле. В противном случае его следует удалить.

Недостатки:

  • Он менее распространен.

Ответ 3

Я думаю, что обычно csv поддерживаются чаще, чем формат tsv.

Ответ 4

Вы можете использовать любой разделитель, который вы хотите, но вкладки и запятые поддерживаются многими приложениями, включая Excel, MySQL, PostgreSQL. Запястья распространены в текстовых полях, поэтому, если вы их избегаете, больше их нужно избегать. Если вы не избежите их, и ваши поля могут содержать запятые, вы не можете уверенно запустить "sort -k2,4" в своем файле. Возможно, вам придется избегать некоторых символов в полях (нулевые байты, строки перевода и т.д.). По этим причинам и более, я предпочитаю использовать TSV и избегать вкладок, нулевых байтов и новых строк в полях. Кроме того, обычно проще работать с TSV. Просто разделите каждую строку на разделитель табуляции. В CSV есть поля с кавычками, возможно, поля с символами новой строки и т.д. Я использую только CSV, когда я вынужден.