У меня есть программа, которая выводит таблицу, и мне было интересно, есть ли какие-либо преимущества/недостатки между форматами csv и tsv.
Выбор между tsv и csv
Ответ 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, когда я вынужден.