CSV文件可以发表评论吗?

Pur*_*ome 187 csv standards comments file-format

是否有任何官方方法允许CSV格式的文件允许在其自己的行或行尾的注释?

我尝试检查维基百科以及RFC 4180,但两者都没有提到任何导致我相信它不是文件格式的一部分因此对我来说运气不好而我应该使用单独的ReadMe.txt文件来解释文件.

最后,我知道我很容易添加自己的评论,但我希望像Excel这样的东西可以直接导入它,而不需要消费者必须自定义导入过程.

那么,想法?

ska*_*man 108

CSV"标准"(例如它)并没有规定应该如何处理注释,不,这取决于应用程序建立约定并坚持使用它.

  • RFC 4180不是标准,[rfc4180](http://tools.ietf.org/html/rfc4180)告诉:"此备忘录为Internet社区提供信息.它没有指定任何类型的Internet标准.这份备忘录是无限的." (27认同)
  • RFC 4180现在是标准. (22认同)
  • 好的,我们可以说是事实上的标准吗? (14认同)
  • RFC 是“Request For Comments”的缩写,意思是它旨在收集社区的反馈。话虽如此,几乎整个互联网都在未经批准的 RFC 上运行,甚至更少。如果没有 [RFC4180](https://datatracker.ietf.org/doc/rfc4180/),CSV“标准”本身基本上是未定义的。这是我们拥有的最权威的模型,尽管有一天它可能会改变。目前,RFC4180 没有插入注释的规定。如果您将自己的注释机制添加到格式中,则不要期望与遵循 RFC4180 的其他阅读器/编写器具有互操作性。 (7认同)
  • 呀......那不是真的.有标准跟踪文档和非标准跟踪(信息)文档.整个过程,包括IETF发布文档的描述,过程和规则,由RFC2026定义,并附有一些后续修订.每个RFC都会在开头指定它所在的轨道. (5认同)

Ped*_*Uno 28

在工程数据中,通常会#在第一列中看到用于发出注释信号的符号.

我使用ostermiller CSV解析库来读取和处理这些文件.该库允许您设置注释字符.在解析操作之后,您将获得一个仅包含实际数据的数组,没有注释.

  • 对于 emacs,“csv-comment-start”默认为“#” (2认同)
  • `#` 的使用也是语言技术中 TSV 格式(“CoNLL 格式”)的事实上的标准。这些格式比当前 CSV 规范早十多年。与 CSV 的主要区别在于,它们要求分隔符为 TAB(或更早的空格)而不是逗号,但从技术上讲,这仍然被视为 CSV 格式。 (2认同)

Jas*_*ams 27

不,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
Run Code Online (Sandbox Code Playgroud)

您仍然会在电子表格中显示一个显示数字0的单元格,但注释会被隐藏.

或者,您可以通过简单地用空格填充文本来隐藏文本,这样它就不会显示在单元格的可见部分中:

                              This is a sort-of hidden comment!,
John, Doe, 24
Run Code Online (Sandbox Code Playgroud)

请注意,您需要使用逗号跟随注释文本,以便Excel填充以下单元格,从而隐藏文本中不适合单元格的任何部分.

讨厌的黑客,只能用于Excel,但它们可能足以让你的输出在导入后看起来有点整洁.


pav*_*ium 6

逗号分隔文件实际上只是一个文本文件,其中行由逗号分隔的值组成。

没有定义 CSV 文件内容的标准,因此没有定义的方式来指示注释。这取决于将导入 CSV 文件的程序。

当然,这通常是Excel。您应该问自己 Excel 如何定义注释?换句话说,什么会使 Excel 忽略 CSV 文件中的一行(或行的一部分)?我不知道有什么可以做到这一点。

  • @Qix - 来自参考文档的第 2 节:“虽然 CSV 格式有各种规范和实现(例如 [4]、[5]、[6] 和 [7]),但没有正式规范存在” (6认同)
  • “没有定义 CSV 文件内容的标准”[错误](http://tools.ietf.org/html/rfc4180) (2认同)

Tyl*_*yne 6

我认为向CSV文件添加注释的最佳方法是在数据中添加"注释"字段或记录.

我使用过的大多数CSV解析应用程序都实现了字段映射和记录选择.因此,要评论字段的属性,请仅为字段描述添加记录.要对记录进行评论,请在其末尾添加一个字段(嗯,所有记录,实际上)仅用于评论.

这是我可以想到评论CSV文件的唯一两个原因.但我能预见的唯一问题是,如果任何单个记录没有通过某些验证规则,那么根本就拒绝接受该文件的程序.在这种情况下,您在编写任何数字字段的字符串类型字段描述记录时遇到问题.

不过,我绝不是专家,所以请随意指出我理论中的任何错误.

  • Aaand,我_just_读到你不想自定义导入过程.抱歉,那个.希望有人认为这很有用. (2认同)

小智 5

如果你需要类似的东西:

\n\n
  \xe2\x94\x82 A                              \xe2\x94\x82 B\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n1 \xe2\x94\x82 #My comment, something else    \xe2\x94\x82\n2 \xe2\x94\x82 1                              \xe2\x94\x82 2\n
Run Code Online (Sandbox Code Playgroud)\n\n

您的 CSV 可能包含以下行:

\n\n
"#My comment, something else"\n1,2\n
Run Code Online (Sandbox Code Playgroud)\n\n

请密切注意第一行中的“引号”。

\n\n

使用 Excel 向导将文本转换为列时,请记住选中“将连续分隔符视为一个”,将其设置为使用“引号”作为分隔符。

\n\n

因此,Excel 将在逗号处分割文本,将“comment”行保留为单个列值(并且它将删除引号)。

\n


小智 5

CSV 没有设计为有注释。我经常在 EXCEL 中将评论作为单独的列。当从嵌入式程序转储数据时,当我(例如)确实需要两个数据列时,通过添加额外的逗号,我会为注释创建一个额外的(第三)列,如下所示:

27,120,,
28,112,,
29,208,This is my comment,
30,85,,
Run Code Online (Sandbox Code Playgroud)