CSV文件可以有评论吗?
有没有官方的方式来允许一个CSV格式的文件允许评论,无论是在自己的行或在行的末尾?
我试着检查维基百科和RFC 4180,但都没有提到任何事情导致我相信它不是文件格式的一部分,所以这是运气不好,我应该使用一个单独的ReadMe.txt文件thingy来解释文件。
最后,我知道我很容易添加自己的评论,但我希望像Excel这样的东西可以直接导入它,而不需要消费者必须自定义导入过程。
那么,想法?
CSV“标准”(比如它)并不指定应该如何处理评论,不,这取决于应用程序build立一个约定,并坚持下去。
不,CSV没有指定任何标注注释的方式 – 它们只会被Excel等程序加载为包含文本的其他单元格。
您可以pipe理的最近(将CSV导入到Excel等特定应用程序中)是定义Excel将忽略的标记注释的特殊方法。 对于Excel,您可以通过将其embedded到公式中来“隐藏”评论(在有限的程度上)。 例如,尝试将以下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,但它们可能足以使您的输出看起来有点整齐后导入。
在工程数据中,通常会看到第一列中的#
符号用于表示注释。
我使用ostermiller CSVparsing库来读取和处理这些文件。 该库允许您设置注释字符。 在parsing操作之后,你得到一个只包含真实数据的数组,没有评论。
我认为向CSV文件添加评论的最佳方式是添加“评论”字段或将权限logging到数据中。
我使用的大多数CSVparsing应用程序都实现了字段映射和loggingselect。 所以,要评论一个字段的属性,只为字段描述添加一条logging。 要对logging发表评论,请在结尾处添加一个字段(以及所有logging,只是为了评论)。
这是我能想到评论一个CSV文件的唯一原因。 但是我可以预见的唯一问题就是如果任何单个logging没有通过一些validation规则,就拒绝接受这个文件。 在这种情况下,您将无法为任何数字字段写入string型字段描述logging。
不过,我绝不是专家,所以请随时指出我的理论中的任何错误。
逗号分隔文件实际上只是一个文本文件,其中行由用逗号分隔的值组成。
没有定义CSV文件内容的标准,所以没有定义的注释方式。 这取决于将导入CSV文件的程序。
当然,这通常是Excel。 你应该问自己Excel如何定义评论? 换句话说,Excel会忽略CSV文件中的一行(或一行的一部分)? 我不知道有什么会做到这一点。
如果您在batch file中使用FOR命令parsing文件,则可以使用分号(;)
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!
OUTPUT:
2, parse this line, yes it should! 4, parse this line, yes it should!
如果你需要这样的东西:
│ A │ B ──┼────────────────────────────────┼─── 1 │ #My comment, something else │ 2 │ 1 │ 2
您的CSV可能包含以下行:
"#My comment, something else" 1,2
密切关注第一行的“报价单”。
使用Excel向导将文本转换为列时,请记住检查“将连续分隔符视为一个”,将其设置为使用“引号”作为分隔符。
因此,Excel将在逗号处分割文本,将“注释”行保留为单列值(并且会删除引号)。