Какие метаданные" sep= " можно добавить в CSV?

при попытке узнать, как заставить CSV правильно открываться в Excel на испанском ПК (принадлежащем клиенту) я нашел много ответов, рекомендующих использовать sep=, вверху файла:

на первый взгляд, этот подход работает, но ни один из этих ответов не дает никакой дополнительной информации о здесь эта опция метаданных происходит от. Я попытался найти то, что это значит (и, следовательно, нашел все эти ответы), но не смог получить дополнительную информацию, особенно учитывая, что пунктуация известна трудно искать.

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

некоторые связанные с этим вопросы:

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

Я надеюсь, что где-то есть часть документации, на которую кто-то может указать мне, что ответит на все эти вопросы и многое другое; я просто не смог ее найти.

некоторые разъяснения:

sep= не параметр парсер. Он предназначен для размещения внутри CSV. Пример:

sep=|
"LETTER"|"ANIMAL"
"a"|"aardvark"
"b"|"bear"
"c"|"cow"
11
задан Community
13.01.2023 16:56 Количество просмотров материала 2685
Распечатать страницу

3 ответа

RFC 4180 обычно признается в качестве стандарта для формата CSV, и не упоминает о подобных функций.

W3C модель табличных данных и метаданных в Интернете упоминает о нем как не в своей области:

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

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

5
отвечен Stefan Kögl 2023-01-15 00:44

внести свой вклад в ответ на один из ваших вопросов: "Есть ли другие инструменты, которые официально поддерживают эту функцию?"

Это не поддерживается Apple Numbers (я тестировал с помощью Numbers версии 3.6.2).

Он также не поддерживается csv2json (https://www.npmjs.com/package/csv2json), ни csvtojson (https://www.npmjs.com/package/csvtojson).

0
отвечен kintel 2023-01-15 03:01

почти любой инструмент, который можно импортировать из .csv-файлы признают, что запятая не является единственным возможным разделителем, вкладки были общими в течение длительного времени, например. Я думаю, что это восходит ко временам перфокарт даже, что должен быть какой - то символ, который распознается как конец поля данных-за исключением систем, которые используют поля фиксированной ширины или поля с префиксом длины почти каждая система нуждается в этом с момента появления компьютеров.

3 основы являются разделителем полей, разделителем записей и маркером конца данных, csv по умолчанию использует запятую, перевод строки и конец файла для них соответственно, но почти любой допустимый ввод может быть использован, вы, однако, нужен механизм для экранирования специальных маркеров, если они происходят в пределах допустимых данных.

одна историческая система, с которой я столкнулся, использовала новую строку для конца поля, 2 пустые строки для конца записи и *!*!* END *!*!* для конца данных. Я обычно сталкивался со всеми из ,\t|: используется в качестве разделителя полей вместе с различными управляющими символами.

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

чтобы ответить на вторую часть вашего вопроса Python, для пример, включает в себя csv reader / writer как одна из стандартных библиотек, которая предлагает следующие опции:

  • delimiter - это разделитель полей, (если не сбежал).
  • doublequote - если true, то " внутри поле будет представлено как ""
  • escapechar - удаляет любое специальное значение из любого следующего символа, например, если он установлен в \ после этого цитату можно представить как \"
  • lineterminator как правило \n,\r,\r\n или \n\r
  • quotechar - символ, используемый для цитирования строк, обычно " или '
  • quoting - флаг, как один из:
    • ALL - каждое поле заключено в кавычки, т. е.:"1","Free Beer","ASAP"
    • MINIMAL - только поля кавычек со специальными символами, то есть: 1,"Beer, (Free)", Now, Please
    • QUOTE_NONNUMERIC - процитируйте все, что не является числом, т. е.: 1,"Beer, (Free)", "Now", "Please"
    • NONE - Не цитируйте escape, то есть:1,Beer\, (Free), Now, Please
  • skipinitialspace - пропустите любое начальное пространство каждого поля, чтобы использовать , а не просто , в качестве разделителя полей.

как правило, более гибкий и хорошо продуманный инструмент, который может импортировать файлы csv, - это больше этих опций (возможно, с разными именами и/или механизмами), которые у него будут.

-3
отвечен Steve Barnes 2023-01-15 05:18

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх