您可以添加到 CSV 的“sep=”元数据是什么?

Bur*_*Ali 33 metadata csv microsoft-excel

在尝试找出如何在西班牙 PC(属于客户)上的 Excel 中正确打开 CSV 时,我发现了许多建议sep=,在文件顶部使用的答案:

从表面上看,这种方法有效,但这些答案都没有提供有关此元数据选项来自何处的任何进一步信息。我试图寻找它的含义(因此找到了所有这些答案),但一直无法获得任何进一步的信息,尤其是考虑到标点​​符号很难搜索是出了名的。

我主要关心的是这是否是 Excel 特定的功能。我怀疑它是,但没有找到任何明确的证据来证实它。

一些相关的问题是:

  • 在此设置中可以使用哪些字符?
  • 还有哪些其他设置可用(例如行终止符、引号字符等)。
  • 是否有任何其他工具正式支持此功能?

我希望在某处有一份文档,有人可以指点我,以回答所有这些问题以及更多问题;我只是一直没能找到它。

一些澄清:

sep=不是一个解析器的参数。它旨在放置CSV 中。例子:

sep=|
"LETTER"|"ANIMAL"
"a"|"aardvark"
"b"|"bear"
"c"|"cow"
Run Code Online (Sandbox Code Playgroud)

Ste*_*ögl 12

RFC 4180被普遍认为是 CSV 格式的标准,并未提及任何此类功能。

Web 上表格数据和元数据的W3C模型将其称为不在其范围内的功能:

许多“CSV”文件嵌入了元数据,例如在 CSV 文档标题行之前的行中。除了标题行中的列名之外,该规范没有定义任何格式来在 CSV 文件中嵌入元数据。

因此,虽然我没有找到任何直接证明此功能特定于 Excel 的证据,但显然情况仍然如此,因为似乎没有涵盖该功能的标准化文档。

  • 我知道它的用途(也许我的回答并不完全清楚)。我只是指出,Excel 似乎引入了该功能,并且它基于任何类型的(公共)标准。 (2认同)

Ste*_*nes -4

几乎任何可以从 .csv 文件导入的工具都会认识到逗号并不是唯一可能的分隔符,例如制表符已经很常见了。我认为这甚至可以追溯到打孔卡的时代,需要有一些字符被识别为数据字段的结尾 - 除了使用固定宽度字段或长度前缀字段的系统之外,几乎每个系统都需要这个自从计算机出现以来。

三个要素是字段分隔符、记录分隔符和数据结束标记,csv默认情况下分别使用逗号、换行符和文件结尾,但几乎可以使用任何有效的输入,但是,您需要一种机制如果特殊标记出现在您的有效数据中,则用于转义它们。

我遇到的一个历史系统使用换行符表示字段结束,使用 2 个空行表示记录结束和*!*!* END *!*!*数据结束。我经常遇到,\t|:用作字段分隔符的所有字符以及各种控制字符。

需要警惕的一件事是,法国人和其他人使用逗号作为小数点 - 这可能会引起各种乐趣和游戏。[rfc4180][1] 中的 csv 文件有一定程度的标准化,但有时在从一个程序导出并导入到另一个程序时需要手动编辑文件。

要回答问题的第二部分,例如,Python 包含一个 [csv reader/writer][2] 作为标准库之一,它提供以下选项:

  • delimiter- 这是字段分隔符(除非转义)。
  • doublequote" - 如果为 true,则字段内的a将表示为""
  • escapechar- 删除任何后续字符的任何特殊含义,例如,如果将其设置为,则\quote 可以表示为\"
  • 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- 不要引用转义,即:1,Beer\, (Free), Now, Please
  • skipinitialspace- 跳过每个字段的任何前导空格,以便您可以使用, 而不是仅仅,用作字段分隔符。

通常,可以导入 csv 文件的工具越灵活且经过深思熟虑,它所具有的这些选项就越多(可能具有不同的名称和/或机制)。[1]: https: //www.rfc-editor.org/rfc/rfc4180 [2]:https://docs.python.org/2/library/csv.html

  • 这并不能回答我的问题。它解释了 CSV 是什么,我已经知道了。我的问题是关于特定的语法。我可以在问题中添加任何背景知识来澄清问题吗? (8认同)
  • sep= 是一种 **Microsoft Excel 特定** 提示方法,我能找到的任何非 Microsoft 规范中均未涵盖该方法。它来自微软的一部分。 (5认同)
  • @SteveBarnes但是是否有任何工具(例如您提到的Python库)允许选项作为文件内容的一部分?我认为这就是问题的要点。 (3认同)
  • “因为他们是众多擅长古怪的人之一。” *是*吗?这是我正在努力解决的问题的一部分。我不想知道 CSV 是什么。我不想知道如何解析 CSV。我想知道 `sep=` 是什么以及它来自哪里。 (3认同)

归档时间:

查看次数:

35967 次

最近记录:

5 年,6 月 前