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