CSV

Файлы CSV (Comma-Separated Values) представляют собой текстовые файлы, в которых данные организованы в виде таблицы, используя разделитель (обычно запятую) для отделения значений в каждой строке. Каждая строка в файле представляет собой одну запись, а значения разделяются запятыми. Каждая строка должна содержать один и тот же набор значений, разделенных запятыми в том же порядке. Файлы CSV могут быть открыты и редактированы в текстовых редакторах или программах для электронных таблиц, таких как Microsoft Excel или Google Sheets. Также этот формат поддерживает множество MLops программ и библиотек, в частности Matplotlib и MATLAB, а также соответствущий драйвер присутствует в ODBC.

Спецификация

  • Каждая строка файла — это одна строка таблицы.
  • Разделителем (англ. delimiter) значений колонок является символ запятой (,). Однако на практике часто используются другие разделители, то есть формат путают с DSV и TSV (см. ниже).
  • Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными кавычками ("). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд.

Стандартизация

Название формата — CSV (значения, разделённые запятыми) — указывает что для разделения полей используется запятая. Тем не менее термин «CSV» может использоваться для обозначения схожих форматов. Много программ понимают под CSV более общий формат DSV (англ. delimiter-separated values — значения разделённые разделителем), допускающий использование иных символов в качестве разделителя. В частности, в русской и других локалях запятая по умолчанию зарезервирована под десятичный разделитель. Поэтому как разделитель используется точка с запятой или табуляция (формат TSV). Другие отличия родственных форматов: используемые кавычки (двойные или одинарные); используемый набор символов; использование первой строки как заголовка. Это значительно затрудняет перенос данных из одних программ в другие, несмотря на всю простоту реализации поддержки CSV.

Стандарт RFC 4180

Существует RFC 4180, предназначенный для стандартизации и упрощения обмена данными в формате CSV. Он предъявляет, в частности, такие требования:

  • окончание строк в стиле MS-DOS, символы (CR / LF).
  • необязательная строка заголовка.
  • каждая строка (запись) должна содержать одинаковое количество полей.
  • поле может быть заключено в двойные кавычки.
  • если поле содержит запятые, переносы строк, двойные кавычки, то это поле должно быть заключено в двойные кавычки. Если этого не сделать, то данные невозможно будет корректно обработать.
  • символ двойной кавычки в поле должен быть удвоен.

Вместе с тем стандарт не рекомендует быть слишком строгим при обработке CSV-данных, получаемых от сторонних источников.

Обсуждение закрыто.