Может ли файл CSV оставить комментарий?

Есть ли какой-либо официальный способ разрешить форматированный файл CSV для комментариев, либо в своей строке ИЛИ в конце строки?

Я попытался проверить wikipedia на этом, а также RFC 4180 но оба не упоминают ничего, что заставляет меня думать, что это не часть формата файла, поэтому мне не повезло, и я должен использовать отдельный файл ReadMe.txt для объяснения файла.

Наконец, я знаю, что мне легко добавить свои собственные комментарии, но я надеялся, что что-то вроде Excel может просто импортировать его сразу, без необходимости для потребителя настраивать процесс импорта.

Итак, мысли?

Ответ 1

Стандарт CSV (такой как он) не определяет, как следует обрабатывать комментарии, нет, это приложение, чтобы установить соглашение и придерживаться его.

Ответ 2

Нет, CSV не указывает какой-либо способ пометки комментариев - они будут просто загружаться такими программами, как Excel, в качестве дополнительных ячеек, содержащих текст.

Ближе всего вы можете управлять (с CSV, импортируемым в конкретное приложение, например Excel), чтобы определить особый способ тегирования комментариев, которые Excel будет игнорировать. Для Excel вы можете "скрыть" комментарий (в ограниченной степени), вложив его в формулу. Например, попробуйте импортировать следующий файл csv в Excel:

=N("This is a comment and will appear as a simple zero value in excel")
John, Doe, 24

У вас все еще есть ячейка в электронной таблице, которая отображает номер 0, но комментарий скрыт.

Кроме того, вы можете скрыть текст, просто заполнив его пробелами, чтобы он не отображался в видимой части ячейки:

                              This is a sort-of hidden comment!,
John, Doe, 24

Обратите внимание, что вам нужно следить за текстом комментария с запятой, чтобы Excel заполнял следующую ячейку и, таким образом, скрывал любую часть текста, который не помещается в ячейку.

Отвратительные хаки, которые будут работать только с Excel, но их может быть достаточно, чтобы ваш результат выглядел немного более аккуратным после импорта.

Ответ 3

В технических данных обычно встречается символ # в первом столбце, используемом для сообщения комментария.

Я использую ostermiller CSV parsing library для чтения и обработки таких файлов. Эта библиотека позволяет вам установить символ комментария. После операции синтаксического анализа вы получите массив, содержащий только реальные данные, без комментариев.

Ответ 4

Я думаю, что лучший способ добавить комментарии к CSV файлу - это добавить поле "Комментарии" или записать прямо в данные.

Большинство приложений для анализа CSV, которые я использовал, реализуют как отображение полей, так и выбор записей. Итак, чтобы прокомментировать свойства поля, добавьте запись только для описания полей. Чтобы прокомментировать запись, добавьте поле в конец (ну, все записи, действительно) только для комментариев.

Это единственная причина, по которой я могу представить комментарий CSV файла. Но единственной проблемой, которую я могу предвидеть, будут программы, которые отказываются принимать файл вообще, если какая-либо одна запись не проходит некоторые правила проверки. В этом случае у вас возникнет проблема с записью записи описания типа строкового типа для любых числовых полей.

Я ни в коем случае не эксперт, поэтому не стесняйтесь указывать на какие-либо ошибки в моей теории.

Ответ 5

Файл с разделяемой запятой - это просто текстовый файл, в котором строки состоят из значений, разделенных запятыми.

Нет стандарта, который определяет содержимое файла CSV, поэтому нет определенного способа указания комментария. Это зависит от программы, которая будет импортировать CSV файл.

Конечно, это обычно Excel. Вы должны спросить себя, как Excel определяет комментарий? Другими словами, что бы заставить Excel игнорировать строку (или часть строки) в CSV файле? Я не знаю ничего, что бы это сделало.

Ответ 6

Если вы разбираете файл командой FOR в пакетном файле, точка с запятой работает (;)

REM test.bat contents

for /F "tokens=1-3 delims=," %%a in (test.csv) do @Echo %%a, %%b, %%c

;test.csv contents (this line is a comment)

;1,ignore this line,no it shouldn't

2,parse this line,yes it should!

;3,ignore this line,no it shouldn't

4,parse this line,yes it should!

ВЫВОД:

2, parse this line, yes it should!

4, parse this line, yes it should!

Ответ 7

Если вам нужно что-то вроде:

  │ A                              │ B
──┼────────────────────────────────┼───
1 │ #My comment, something else    │
2 │ 1                              │ 2

Ваш CSV может содержать следующие строки:

"#My comment, something else"
1,2

Обратите внимание на "цитаты" в первой строке.

При преобразовании текста в столбцы с помощью мастера Excel помните, что "Отслеживать последовательные разделители как единое целое", чтобы использовать "кавычки" как разделитель.

Таким образом, Excel разделит текст на запятую, сохранив строку "comment" как одно значение столбца (и он удалит кавычки).