Открыть сервисСервис

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-файлами
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru