it-roy-ru.com

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

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

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

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

Итак, мысли?

181
Pure.Krome

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

105
skaffman

Нет, 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, но их может быть достаточно, чтобы ваш вывод выглядел немного более аккуратным после импорта.

26
Jason Williams

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

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

25
Pedro_Uno

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

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

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

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

6
Tyler Wayne

Если вы анализируете файл с помощью команды 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!
3
Ken Bob Saxton

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

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

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

2
pavium

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

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

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

"#My comment, something else"
1,2

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

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

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

2
Rogerio Granato