CSV-файл — формат табличных данных¶
CSV-файл (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый файл, предназначенный для хранения табличных данных в виде строк, поля которых разделены определённым разделителем. CSV относится к числу наиболее распространённых форматов обмена табличной информацией между программами и используется в базах данных, электронных таблицах, аналитике и веб-разработке.
¶История
Формат CSV не имеет единого официального стандарта. Наиболее близким к стандарту является RFC 4180 (2005), описывающий структуру CSV-файлов на основе опыта работы с данными в промышленности. Ранние версии формата использовались ещё в 1970-е годы в системах обработки данных IBM, где разделителем служила запятая. Позднее формат получил широкое распространение благодаря простоте и совместимости с большинством табличных приложений.
¶Структура файла
CSV-файл состоит из строк, каждая из которых представляет собой запись (строку таблицы). Поля внутри строки разделяются разделителем — как правило, запятой, но могут использоваться также точка с запятой, табуляция или вертикальная черта. Классический пример:
`` Имя,Фамилия,Возраст Иван,Петров,34 Анна,Сидорова,28 ``
Первая строка обычно содержит заголовки столбцов, хотя формат этого не требует. Пустые значения записываются как два разделителя подряд.
¶Особенности записи
- Если значение содержит сам разделитель, оно заключается в двойные кавычки.
- Двойная кавычка внутри кавычек записывается как две подряд (
""). - Строки могут содержать перевод строки внутри кавычек — это позволяет хранить многострочные значения.
- Кодировка файла не определена стандартом; на практике используются UTF-8, Windows-1251 и другие.
¶Стандарты и вариации
Хотя RFC 4180 описывает формат с запятой в качестве разделителя и переводами строк CRLF, на практике существуют региональные вариации. В странах Европы, включая Россию, распространён формат с разделителем «точка с запятой» — это связано с тем, что в локализациях Excel запятая используется как десятичный разделитель. Многие программы (Microsoft Excel, LibreOffice Calc, 1С) автоматически распознают оба варианта.
¶Применение
CSV-файлы используются в самых разных областях:
- Экспорт и импорт данных — выгрузка из баз данных (MySQL, PostgreSQL, SQLite) и загрузка в них.
- Обмен между программами — передача данных между учётными системами, CRM, аналитическими платформами.
- Научные данные — хранение результатов экспериментов и наблюдений.
- Веб-разработка — загрузка списков (пользователей, товаров, геоданных) на сервер.
- Бизнес-отчётность — формирование выгрузок для бухгалтерских и налоговых систем.
¶Преимущества и недостатки
| Преимущества | Недостатки |
|---|---|
| Простота формата | Отсутствие строгого стандарта |
| Универсальность — читается почти любой программой | Нет встроенной поддержки типов данных |
| Малый размер файла | Сложность с многострочными и спецсимволами |
| Читаемость в текстовом редакторе | Не подходит для иерархических данных |
| Отсутствие привязки к конкретной программе | Возможны проблемы с кодировками |
¶Альтернативы
Для задач, где CSV недостаточно, используются форматы JSON, XML, XLSX, Parquet и другие. JSON и XML поддерживают типизированные данные и вложенность, XLSX — форматирование и несколько листов, Parquet — эффективное сжатие больших объёмов данных. Тем не менее CSV остаётся одним из самых распространённых форматов благодаря своей простоте и совместимости.
¶Программная поддержка
Почти все табличные и базы данных поддерживают CSV: Microsoft Excel, Google Таблицы, LibreOffice Calc, Apache OpenOffice, R, Python (модуль csv и pandas), PHP, Perl, Java и другие языки и среды. В Python чтение CSV выполняется стандартной библиотекой:
``python import csv with open('data.csv', encoding='utf-8') as f: reader = csv.reader(f, delimiter=';') for row in reader: print(row) ``
Источники:
- RFC 4180. Common Format and MIME Type for Comma-Separated Values (CSV) Files
- Тихонов А. П. Форматы обмена данными. — М.: БХВ-Петербург
- Документация Python: модуль csv
- Документация Microsoft Excel: работа с CSV-файлами
