是否有任何官方方式允许CSV格式的文件允许在自己的行或在行尾添加注释?
我尝试检查此wikipedia以及RFC 4180,但两者都没有提及导致我认为它不属于文件格式的任何内容因此对我来说运气不好而我应该使用一个单独的ReadMe.txt文件,可以解释该文件。
最后,我知道我很容易添加自己的评论,但我希望像Excel这样的东西可以直接导入它,而不需要消费者必须自定义导入过程。
那么,想法?
答案 0 :(得分:103)
CSV“标准”(例如它)没有规定如何处理评论,不,这取决于建立公约并坚持使用它的应用程序。
答案 1 :(得分:26)
不,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,但它们可能足以让您的输出在导入后看起来更整洁。
答案 2 :(得分:25)
在工程数据中,通常会在第一列中看到用于发出评论信号的#
符号。
我使用ostermiller CSV parsing library来阅读和处理这些文件。该库允许您设置注释字符。在解析操作之后,你得到一个只包含真实数据的数组,没有注释。
答案 3 :(得分:6)
我认为向CSV文件添加评论的最佳方法是在数据中添加“评论”字段或记录。
我使用过的大多数CSV解析应用程序都实现了字段映射和记录选择。因此,要评论字段的属性,请仅为字段描述添加记录。要对记录发表评论,请在其末尾添加一个字段(嗯,所有记录,真的)仅用于评论。
这是我可以考虑评论CSV文件的唯一两个原因。但我能预见的唯一问题是,如果任何单个记录没有通过某些验证规则,那么根本就拒绝接受该文件的程序。在这种情况下,您在编写任何数字字段的字符串类型字段描述记录时会遇到问题。
我绝不是专家,所以请随意指出我理论中的任何错误。
答案 4 :(得分:2)
逗号分隔文件实际上只是一个文本文件,其中的行由逗号分隔的值组成。
没有标准定义CSV文件的内容,因此没有定义注释的定义方式。这取决于将导入CSV文件的程序。
当然,这通常是Excel。你应该问问自己Excel如何定义评论?换句话说,什么会使Excel忽略CSV文件中的一行(或一行的一部分)?我不知道有什么可以做到的。
答案 5 :(得分:2)
如果您需要以下内容:
│ A │ B
──┼────────────────────────────────┼───
1 │ #My comment, something else │
2 │ 1 │ 2
您的CSV可能包含以下行:
"#My comment, something else"
1,2
密切关注第一行的'引号'。
使用Excel向导将文本转换为列时,请记住选中“将连续分隔符视为一个”,将其设置为使用“引号”作为分隔符。
因此,Excel会将文本拆分为逗号,将“注释”行保留为单个列值(并删除引号)。
答案 6 :(得分:2)
如果您在批处理文件中使用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!