Что такое формат файла CSV?
.csv - это формат файлов, в котором хранятся различные типы данных в виде текстовых наборов, разделенных символами, чаще всего запятой - отсюда и название Comma-Separated Values. Формат описан в RFC 4180 (2005), минимальном, но широко принятом стандарте. Записи данных разделяются символом новой строки, а значения отдельных полей обычно заключаются в двойные кавычки. Чтобы включить саму двойную кавычку внутрь поля, она записывается дважды как "".
Первая строка файла .csv по традиции содержит названия столбцов (заголовок), хотя спецификация CSV не делает его структуру обязательной. Поля записей могут быть разделены:
- Запятыми,
- Точками с запятой,
- Табуляцией (см. .TSV),
- Другими символами, если они используются последовательно во всем документе.
Файлы .csv используются для хранения, импорта и экспорта данных в четко определенном, платформонезависимом формате, который может открыть любой текстовый редактор. Поскольку выбор разделителя не ограничен, это иногда может вызывать проблемы при конвертации; поэтому мастера импорта данных должны предлагать возможность настройки используемого разделителя, как это реализовано в приложениях для работы с таблицами, таких как Microsoft Excel и LibreOffice Calc.
.csv не имеет сигнатуры файла (magic bytes) и идентифицируется по структуре, а не по содержимому. Файл может опционально начинаться с метки порядка байтов UTF-8 (EF BB BF), которую Excel записывает автоматически для обозначения кодировки. Большинство языков программирования предоставляют специализированные библиотеки для надежного импорта и управления файлами .csv, что делает его одним из самых универсальных форматов обмена данными на сегодняшний день.
Безопасность и защита
РИСК: MEDIUMCSV - это обычный текст и сам по себе не может запускать код, но он несет реальный риск: CSV-инъекция (инъекция формул). Если ячейка начинается с =, +, - или @, табличный редактор может выполнить её как формулу при открытии - злоумышленники используют это в экспортируемых CSV для запуска команд или кражи данных. Современные Excel/LibreOffice предупреждают перед запуском таких формул; не разрешайте их выполнение в файлах из ненадежных источников. Повседневный «риск» - это порча данных, а не вредоносное ПО: неверная кодировка или разделитель могут незаметно исказить числа, даты и ведущие нули (например, в почтовых индексах и номерах телефонов).
Детали формата
в двух словахПрограммы, открывающие файлы CSV
Технические подробности
глубокая спецификация| MIME-тип | text/csv |
| Структура файла | Обычный текст; строки разделены окончаниями строк, поля разделены выбранным символом-разделителем |
| Разделитель по умолчанию | Запятая (`,`); точки с запятой и табуляция также являются широко используемыми вариантами |
| Окончание строки (RFC 4180) | CRLF (`\r\n` по спецификации); только LF (`\n`) широко принимается на практике |
| Символ кавычек для полей | Двойная кавычка (`"`); удваивается (`""`) для экранирования кавычки внутри поля |
| Строка заголовка | Необязательная первая строка, традиционно содержащая имена столбцов; RFC 4180 оставляет структуру заголовка неопределенной |
| Сигнатура файла (magic bytes) | Отсутствует; идентифицируется по структуре. В начале файла может присутствовать опциональный UTF-8 BOM (`EF BB BF`) |
| Поддержка многострочных полей | Поддерживается, если содержимое поля заключено в двойные кавычки |
| Модель данных | Только одна плоская таблица; в формате не закодированы вложенность, связи или типы данных столбцов |
| Кодировка текста | Любая кодировка, согласованная между отправителем и получателем; UTF-8 и Windows-1252 наиболее распространены |
| Встроенное сжатие | Отсутствует; файлы часто архивируются как `.gz` или [ZIP](/format/zip) |
| Пригодность для потоковой передачи | Высокая - строки можно обрабатывать по одной без загрузки всего файла в память |
| Поддержка бинарных данных | Нативно не поддерживается; бинарное содержимое должно быть закодировано в Base64 как текст |
| Лимиты строк в приложениях | Лимитов на уровне формата нет; Microsoft Excel ограничивает импорт листа 1 048 576 строками |
| Выпущен | 1970s (early use); RFC 4180 published 2005 |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.rfc-editor.org |
Конвертации CSV
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах CSV.