Файлы CSV (Comma-Separated Values) представляют собой текстовые файлы, в которых данные организованы в виде таблицы, используя разделитель (обычно запятую) для отделения значений в каждой строке. Каждая строка в файле представляет собой одну запись, а значения разделяются запятыми. Каждая строка должна содержать один и тот же набор значений, разделенных запятыми в том же порядке. Файлы CSV могут быть открыты и редактированы в текстовых редакторах или программах для электронных таблиц, таких как Microsoft Excel или Google Sheets. Также этот формат поддерживает множество MLops программ и библиотек, в частности Matplotlib и MATLAB, а также соответствущий драйвер присутствует в ODBC.
Спецификация
- Каждая строка файла — это одна строка таблицы.
- Разделителем (англ. delimiter) значений колонок является символ запятой (
,
). Однако на практике часто используются другие разделители, то есть формат путают с DSV и TSV (см. ниже). - Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными кавычками (
"
). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд.
Стандартизация
Стандарт RFC 4180
Существует RFC 4180, предназначенный для стандартизации и упрощения обмена данными в формате CSV. Он предъявляет, в частности, такие требования:
- окончание строк в стиле MS-DOS, символы (CR / LF).
- необязательная строка заголовка.
- каждая строка (запись) должна содержать одинаковое количество полей.
- поле может быть заключено в двойные кавычки.
- если поле содержит запятые, переносы строк, двойные кавычки, то это поле должно быть заключено в двойные кавычки. Если этого не сделать, то данные невозможно будет корректно обработать.
- символ двойной кавычки в поле должен быть удвоен.
Вместе с тем стандарт не рекомендует быть слишком строгим при обработке CSV-данных, получаемых от сторонних источников.