2009-12-25 7 views
152

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

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

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

Итак, мысли?

+1

Что бы вы прокомментировать на? Значения в каждой строке или самом файле? Является ли XML-файл альтернативой для вас? –

+3

Предлог был сбит для [Python] (http://bugs.python.org/issue1225769). – new123456

+2

Возможно строка версии для данных @SquareRigMaster. Так же, как я сейчас пытаюсь это сделать? –

ответ

78

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

+19

RFC 4180 теперь стандарт. – vipw

+13

RFC 4180 не является стандартом, [rfc4180] (http://tools.ietf.org/html/rfc4180) сообщает: «В этой записке содержится информация для интернет-сообщества. не указывает какой-либо интернет-стандарт любого типа. Распространение этого примечания не ограничено ». –

+7

Хорошо, можем ли мы сказать, что это стандарт де-факто? –

2

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

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

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

+1

'Нет стандарта, который определяет содержимое файла CSV' [False.] (Http://tools.ietf.org/html/rfc4180) – Qix

+3

@Qix - из раздела 2 ссылочного документа:« Пока есть различные спецификации и реализации для формата CSV (например, [4], [5], [6] и [7]), формальных спецификаций не существует » –

23

Нет, 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 заполняет следующую ячейку и, таким образом, скрывает любую часть текста, который не помещается в ячейку.

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

6

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

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

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

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

+1

Aaand, I _just_ прочитал, что вы не хотели настройте процесс импорта. Извините, это так. Надеюсь, кто-то найдет это полезным. –

1

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

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

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

"#My comment, something else" 
1,2 

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

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

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

19

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

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

2

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

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! 
+0

!! Ты настоящий босиком Кен Боб? –

Смежные вопросы