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


203

Чи є якийсь офіційний спосіб дозволити файлу, відформатованому CSV, дозволити коментарі, або в його власному рядку АБО в кінці рядка?

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

Нарешті, я знаю, що мені легко додати свої коментарі, але я сподівався, що щось на зразок Excel може просто імпортувати його відразу, не потребуючи того, щоб споживач мав налаштовувати процес імпорту.

Отже, думки?


1
Що б ви прокоментували? Значення у кожному рядку чи у самому файлі? Чи XML-файл є альтернативою для вас?
Майстер Square Rig

3
Попередження було збито для Python .
new123456

2
Можливо рядок версії для даних @SquareRigMaster. Так само, як я зараз намагаюся робити?
Роб Уеллс

@SquareRigMaster - Або заява про авторське право.
Річард Сміт

Відповіді:


116

"Стандарт" CSV (такий, як він є) не диктує, як слід обробляти коментарі, ні. Це залежить від програми, щоб створити конвенцію та дотримуватися її.


23
RFC 4180 - це стандарт зараз.
vipw

34
RFC 4180 не є стандартом, rfc4180 повідомляє: "Ця примітка надає інформацію для Інтернет-спільноти. У ній не визначений будь-який Інтернет-стандарт. Поширення цієї нотатки не обмежено."
Пол Вейберт

14
Гаразд, чи можемо ми сказати, що це фактично стандарт?
Марко Сулла

1
Усі RFC - пам’ятки, не призначені для забезпечення будь-якого Інтернет-стандарту AFAIK
usr-local-ΕΨΗΕΛΩΝ

5
Так, це неправда. Є стандартні трекові документи та нестандартні дорожні (інформаційні) документи. Весь процес, включаючи описи, процеси та правила для документів, виданих IETF, визначається RFC2026 з деякими подальшими змінами. Кожен RFC вкаже на початку, на якій доріжці.
Стів Хоул

31

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

Я використовую бібліотеку CSV для розбору CSV для читання та обробки таких файлів. Ця бібліотека дозволяє встановити символ коментаря. Після операції розбору ви отримуєте масив, що містить реальну інформацію, без коментарів.


30

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


6

Я думаю, що найкращим способом додати коментарі до файлу CSV було б додати поле "Коментарі" або записати прямо у дані.

Більшість застосувань для аналізу CSV, які я використовував, реалізують як картографічне поле, так і вибір записів. Отже, щоб коментувати властивості поля, додайте запис лише для описів полів. Щоб коментувати запис, додайте поле наприкінці (ну, усі записи, справді) лише для коментарів.

Це єдині дві причини, з яких я можу подумати, щоб коментувати файл CSV. Але єдиною проблемою, яку я можу передбачити, будуть програми, які взагалі відмовляються приймати файл, якщо жоден запис не проходить певних правил перевірки. У цьому випадку у вас виникнуть проблеми з написанням запису опису поля рядка для будь-яких числових полів.

Я в жодному разі не експерт, тому сміливо вказуйте на будь-які помилки в моїй теорії.


2
Ааа, я щойно прочитав, що ви не хотіли налаштовувати процес імпорту. Вибачте, але це. Сподіваємось, хтось вважає це корисним.
Тайлер Мамфорд

1
Гарний пост. Ще одна причина, з якої я можу подумати, чому ви можете зауважити, - це додати деякі метадані про файл у цілому. Якщо додати цілий стовпець або рядок лише для однієї комірки з цією інформацією, це виглядає трохи незручно.
Бен

3

Файл, розділений комами, - це лише текстовий файл, де рядки складаються із значень, розділених комами.

Не існує стандарту, який визначає вміст файлу CSV, тому немає визначеного способу вказівки коментаря. Це залежить від програми, яка буде імпортувати файл CSV.

Звичайно, це зазвичай Excel. Ви повинні запитати себе, як Excel визначає коментар? Іншими словами, що б змусило Excel ігнорувати рядок (або частину рядка) у файлі CSV? Я не знаю нічого, що могло б це зробити.


2
There is no standard which defines the contents of a CSV file Помилковий.
Qix - МОНІКА ПОМИЛИЛА

5
@Qix - з розділу 2 посилається на документ: "Хоча існують різні специфікації та реалізації для формату CSV (наприклад, [4], [5], [6] та [7]), формальної специфікації немає в існування "
Alien Technology

3

Якщо ви аналізуєте файл командою 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!

1
!! Ви справжній босоніж Кен Боб?
Джеффрі Хейл

2

Якщо вам потрібно щось на зразок:

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

Ваш CSV може містити такі рядки:

"#My comment, something else"
1,2

Зверніть пильну увагу на "котирування" в першому рядку.

Перетворюючи текст у стовпці за допомогою майстра Excel, пам’ятайте, що перевірте „Розглядати послідовні роздільники як один”, встановивши його використовувати „лапки” як роздільник.

Таким чином, Excel розділить текст на коми, зберігаючи рядок "коментар" як значення одного стовпця (і це видалить лапки).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.