起初这似乎很明显,但现在我不太确定。
如果CSV文件包含以下行:
a,
我会将其解释为具有值“a”和“”的两个字段。但是后来看一个空行,我可以轻易地说它表示一个字段的值为“”。
我接受文件末尾的空行应该被解释为文件的结尾(没有字段)。但有没有人知道文件中的空行应该是什么意思?
答案 0 :(得分:6)
请注意,空行可能是多行引用字段的一部分:
1,2,"this
is
field number
3",4,5
是有效的CSV。
在我看过的大多数CSV文件中,每行的字段数是常数(虽然不一定如此),所以除非CSV文件只有一列,否则我会期望空行(在引用字段)是一个错误。
我刚检查过:Python的CSV解析器忽略了空行。我猜这是合理的。
答案 1 :(得分:6)
看看Excel在读取CSV文件时如何处理空行,我可以看到Excel 不忽略它们。
不幸的是,没有办法判断空行是否被视为空字段或根本没有字段,因为Excel总是具有相同的列数。
我看到了CSV格式的一些专有用途,其中可以选择如何处理空白行。最后,这是我采取的方法。我的CSV阅读器类有四个如何处理空行的选项:
如果有人感兴趣,我将发布新的源代码以替换Reading and Writing CSV Files in C#处的现有文章。
答案 2 :(得分:2)
根据我的理解和经验,它代表缺失的记录,应该被忽略。不要将其视为EOF。